• 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 }
  • 相关阅读:
    PHP 实现定时任务的几种方法
    ueditor 文本编辑器
    CodeIgniter 如何去掉 Index.php
    php 后台权限例子 (mysql 数据表)
    php ajax 下拉加载数据
    Codeforces 931.D Peculiar apple-tree
    Codeforces 931.C Laboratory Work
    Codeforces 932.F Escape Through Leaf
    bzoj2325 [ZJOI2011]道馆之战
    bzoj3611 [Heoi2014]大工程
  • 原文地址:https://www.cnblogs.com/songjianming/p/10994638.html
Copyright © 2020-2023  润新知