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 }
  • 相关阅读:
    November 13th 2016 Week 47th Sunday The 1st Day
    November 12th 2016 Week 46th Saturday
    November 11th 2016 Week 46th Friday
    November 10th 2016 Week 46th Thursday
    November 9th 2016 Week 46th Wednesday
    November 8th 2016 Week 46th Tuesday
    windows 7文件共享方法
    Win7无线网络共享设置方法
    常量指针和指针常量
    如何查找局域网的外网ip
  • 原文地址:https://www.cnblogs.com/songjianming/p/10994638.html
Copyright © 2011-2022 走看看