php 发送post请求且header中带参数bug调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 发送post请求且header中带参数bug调试相关的知识,希望对你有一定的参考价值。

  通常get方式header中带参数如下通过curl调用即可:

    function send_get_curl_header($url, $data){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $data);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

  注意$data格式为数组[‘AppToken: ‘.$token],而post发送时要注意postData要进行http_build_query才能成功代码如下:

function send_post_curl_header($url, $header_data , $post_data){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
    $sResult = curl_exec($ch);
    if($sError=curl_error($ch)){
        die($sError);
    }
    curl_close($ch);
    return $sResult;
}

  大家注意,此处花费了我一定的时间去调试。

以上是关于php 发送post请求且header中带参数bug调试的主要内容,如果未能解决你的问题,请参考以下文章

php curl如何直接转发当前php接收的headers?get请求如何直接转发get参数?post请求如何直接转发post参数?

PHP配置请求头允许跨域拦截OPTIONS请求接收POST请求参数

PHP配置请求头允许跨域拦截OPTIONS请求接收POST请求参数

PHP中怎样发送post请求并获取网页?

php 发送post请求 https类型

VUE axios POST 发送跨域 cros 问题