php curl设置header的方法:首先初始化浏览器;然后设置浏览器,并把参数url传到浏览器的设置当中;接着以字符串形式返回到浏览器当中,并判断data是否有数据;最后通过“curl_setopt”方法设置header头即可。
推荐:《PHP教程》
PHP使用CURL设置header头传参以及设置Content-Type: application/json类型的后台数据接收
CURL函数
public function CurlRequest($url,$data=null,$header=null){ //初始化浏览器 $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) ) { //设置POST请求方式 @curl_setopt($ch, CURLOPT_POST, true); //设置POST的数据包 @curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } //设置header头 if ( !empty($header) ) { 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头里面设置的自定义参数会在这里面体现
结果
{ "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"}"
以上是php如何使用curl设置header头传参的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具