php curl设置headers,php如何使用curl设置header头传参

php curl设置header的方法:首先初始化浏览器;然后设置浏览器,并把参数url传到浏览器的设置当中;接着以字符串形式返回到浏览器当中,并判断data是否有数据;最后通过“curl_setopt”方法设置header头即可。

976599027b57ac83910107b9be9024a6.png

推荐:《PHP教程》

PHP使用CURL设置header头传参以及设置Content-Type: application/json类型的后台数据接收

CURL函数public function CurlRequest($url,$data=null,$header=null){undefined

//初始化浏览器

$ch = curl_init();

//设置浏览器,把参数url传到浏览器的设置当中

curl_setopt($ch, CURLOPT_URL, $url);

//以字符串形式返回到浏览器当中

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

//禁止https协议验证域名,0就是禁止验证域名且兼容php5.6

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

//禁止https协议验证ssl安全认证证书

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

//判断data是否有数据,如果有data数据传入那么就把curl的请求方式设置为POST请求方式

if ( !empty($data) ) {undefined

//设置POST请求方式

@curl_setopt($ch, CURLOPT_POST, true);

//设置POST的数据包

@curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

}

//设置header

if ( !empty($header) ) {undefined

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

}

//让curl发起请求

$str = curl_exec($ch);

//关闭curl浏览器

curl_close($ch);

//把请求回来的数据返回

return $str;

}

函数调用$url = "http://desk.yunindex.cn/test";

$jsonArr = [

'accountid' => '34',

'option' => 'chat_index',

];

$jsonStr = json_encode($jsonArr);  //设置了Content-Type: application/json,传参要转化为JSON,否则后台接收不到数据

//header头设置

$headers = array(

"Content-Type: application/json",

"Content-Length: " . strlen($jsonStr) . "",

"Accept: application/json",

"client-id:5K8264ILTKCH16CQ2502SI8ZNMTM67VS",    //自定义参数

"client-secret:C380BEC2BFD727A4B6845133519F3AD6"  //自定义参数

);

$data = $this->CurlRequest($url,$jsonStr,$headers);

后台接受json_encode($_SERVER)

使用$_SERVER能接收到header头的信息,在header头里面设置的自定义参数会在这里面体现

结果{undefined

"USER": "www",

"HOME": "\/home\/www",

"HTTP_CLIENT_SECRET": "C380BEC2BFD727A4B6845133519F3AD6",       //这是自定义的参数,跟上面传的参数相对于,会自动转化为大写跟下划线

"HTTP_CLIENT_ID": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS",          //这是自定义的参数,跟上面传的参数相对于,会自动转化为大写跟下划线

"HTTP_ACCEPT": "application\/json",

"HTTP_CONTENT_LENGTH": "40",

"HTTP_CONTENT_TYPE": "application\/json",

"HTTP_HOST": "desk.yunindex.cn",

"SCRIPT_FILENAME": "\/workspace\/php\/index_desk\/htdocs\/index.php",

"REDIRECT_STATUS": "200",

"SERVER_NAME": "desk.yunindex.cn",

"SERVER_PORT": "80",

"SERVER_ADDR": "192.168.1.90",

"REMOTE_PORT": "64524",

"REMOTE_ADDR": "192.168.1.113",

"SERVER_SOFTWARE": "nginx\/1.15.2",

"GATEWAY_INTERFACE": "CGI\/1.1",

"REQUEST_SCHEME": "http",

"SERVER_PROTOCOL": "HTTP\/1.1",

"DOCUMENT_ROOT": "\/workspace\/php\/index_desk\/htdocs",

"DOCUMENT_URI": "\/index.php",

"REQUEST_URI": "\/test",

"SCRIPT_NAME": "\/index.php",

"CONTENT_LENGTH": "40",

"CONTENT_TYPE": "application\/json",

"REQUEST_METHOD": "POST",

"QUERY_STRING": "",

"FCGI_ROLE": "RESPONDER",

"PHP_SELF": "\/index.php",

"REQUEST_TIME_FLOAT": 1557025085.410574,

"REQUEST_TIME": 1557025085

}

这里有一个问题,如果使用的是nginx的话,header头里的参数如果有下划线(如:client_secret),使用$_SERVER貌似会接收不到该参数,需要配置nginx.conf,在里面添加 underscores_in_headers on; 配置file_get_contents('php://input')

接收参数,以流的形式接收

结果string(40) "{"accountid":"34","option":"chat_index"}"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要设置 PHP cURL 请求的 header,可以使用 CURLOPT_HTTPHEADER 选项。下面是一个简单的示例代码:$headers = array('Content-Type: application/json', 'Authorization: Bearer {token}'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); ### 回答2: 可以使用PHPcURL扩展来设置请求信息。以下是设置请求的示例代码: ``` // 创建一个cURL句柄 $curl = curl_init(); // 设置请求URL curl_setopt($curl, CURLOPT_URL, "http://example.com"); // 设置请求信息 $headers = array( "Content-Type: application/json", "Authorization: Bearer Your-Token" ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); // 执行请求并获取响应 $response = curl_exec($curl); // 检查是否有错误发生 if (curl_errno($curl)) { $error_message = curl_error($curl); // 处理错误 } // 关闭cURL句柄 curl_close($curl); ``` 在上述代码中,通过使用`curl_setopt`函数来设置cURL选项。`CURLOPT_URL`用于指定请求的URL。`CURLOPT_HTTPHEADER`用于设置请求信息,其中`$headers`是一个包含多个部信息的数组。您可以根据需要自定义部信息。最后,通过调用`curl_exec`函数来执行请求并获取响应。 如果请求期间发生错误,您可以使用`curl_errno`和`curl_error`函数来获取错误信息并进行相应的处理。 希望这个代码对您有所帮助! ### 回答3: 在PHP中,可以使用cURL函数库进行HTTP请求。设置请求信息可以通过设置`CURLOPT_HTTPHEADER`选项来完成。下面是一个设置header的示例代码: ```php // 初始化cURL会话 $ch = curl_init(); // 设置请求的URL curl_setopt($ch, CURLOPT_URL, "http://example.com"); // 设置请求信息 $header = array( "Content-Type: application/json", "Authorization: Bearer token" ); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); // 其他cURL选项,如超时设置等 // 执行请求 $response = curl_exec($ch); // 检查是否有错误发生 if(curl_errno($ch)){ echo 'cURL错误:' . curl_error($ch); } // 关闭cURL会话 curl_close($ch); // 处理响应数据 echo $response; ``` 上述代码中,通过`curl_setopt()`函数设置了`CURLOPT_HTTPHEADER`选项,将请求信息设置为一个包含多个字符串的数组`$header`。每个字符串代表一个请求,可以根据需要自行添加。 注意,`CURLOPT_HTTPHEADER`选项要求请求信息必须以字符串的形式进行设置,所以需谨慎使用。 以上代码示例仅供参考,实际使用中还需要根据具体情况进行调整和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值