zoukankan      html  css  js  c++  java
  • curl post请求封装

     2 /* 
     3 POST /servlet/ICBCCMPAPIReqServlet?userID=jyi.y.1001&PackageID=201807311347539185&SendTime=20180731134755 HTTP/1.1
     4 Host: 127.0.0.1:7070
     5 Accept:*
     6 Content-Type:application/x-www-form-urlencoded
     7 Content-Length: 4211
     8 Expect: 100-continue 
     9 
    10  */
    11 
    12 /* 
    13 HTTP/1.1 100 Continue
    14  */
    15  
    16 /**
    17  * * curlPost请求
    18  * @param string $url 请求的url
    19  * @param array $dataArr 发送的数据
    20  * @param string $dataType 发送数据类型
    21  * @param array $headerArr 请求头
    22  * @param int $timeout 超时时间
    23  * @author:songjm
    24  * @date:2018.7.31
    25  * @return array
    26  */
    27 function curlPost($url, $dataArr, $dataType = 'arr', $headerArr = array(), $timeout = 3)
    28 {
    29     $headerArr[] = 'Expect:'
    30     //防止libcurl发送大于1024字节数据时启用HTTP/1.1的Expect:100-continue特性
    31     $ch = curl_init(); //初始化curl
    32     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而不直接输出
    33     curl_setopt($ch, CURLOPT_URL, $url); //设置请求的url
    34     curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArr);
    35     curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    36     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证对等证书
    37     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //不检查服务器SSL证书
    38 
    39     $dataType = strtolower($dataType);
    40     if ($dataType == 'json')
    41     {
    42         $data = json_encode($dataArr);
    43     }
    44     elseif ($dataType == 'ser')
    45     {
    46         $data = serialize($dataArr);
    47     }
    48     elseif ($dataType == 'raw')
    49     {
    50         $data = $dataArr;
    51     }
    52     else
    53     {
    54         $data = http_build_query($dataArr);
    55     }
    56     curl_setopt($ch, CURLOPT_POST, true); //设置为POST请求
    57     curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //设置POST的请求数据(字符串或数组)
    58 
    59     $response = curl_exec($ch);
    60     if ($error = curl_error($ch))
    61     {
    62         $bkArr =  array(
    63             'code' => 0,
    64             'msg' => $error,
    65         );
    66     }
    67     else
    68     {
    69         $bkArr =  array(
    70             'code' => 1,
    71             'msg' => 'ok',
    72             'resp' => $response,
    73         );
    74     }
    75 
    76     curl_close($ch); // 关闭 cURL 释放资源
    77 
    78     return $bkArr;
    79 }
  • 相关阅读:
    Django对静态文件的处理——部署阶段
    使用Django来处理对于静态文件的请求
    Django1.7如何配置静态资源访问
    Spring WebSocket中403错误解决
    FastJSON JSONObject 字段排序 Feature.OrderedField
    国际化(i18n) 各国语言缩写
    【转】java.io.Closeable接口
    【转】spring bean 卸载
    This content should also be served over HTTPS
    Failed to close the ServletOutputStream connection cleanly, Broken pipe
  • 原文地址:https://www.cnblogs.com/songjianming/p/10994638.html
Copyright © 2011-2022 走看看