[英]Custom curl CURLOPT_HTTPHEADER with result [Authentication-API-Key] => 123456
http连接需要带有自定义标头对象Authentication-API-Key的HTTP POST请求
使用CURL时,它会自动转换为[HTTP_AUTHENTICATION_API_KEY] => 12345无法确定原因
从php类提取的简单代码进行测试是
请帮帮我,如何使用[Authentication-API-Key] => 123456获得$ _SERVER结果
<?php
$contentType = 'text/xml';
$method = 'POST';
$auth = '';
$header1 = 'Authentication-API-Key: 12345';
$charset= 'ISO-8859-1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/test/returnurl.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, Array('Content-type: ' .
$contentType . '; charset=' . $charset,
$header1));
curl_exec($ch);
?>
<?php
//http://localhost/test/returnurl.php
Print_r($_SERVER,true)
?>
输出:
Array ( [HTTP_HOST] => localhost [HTTP_ACCEPT] => */* [CONTENT_TYPE] => text/xml; charset=ISO-8859-1 [HTTP_AUTHENTICATION_API_KEY] => 12345 ... )
如果运行您的代码, $header2
收到消息$header2
未定义,因此我认为您需要修复该问题。 如果删除$header2
,则输出为:
GET /test/returnurl.php HTTP/1.1
Host: localhost
Accept: */*
Content-type: text/xml; charset=ISO-8859-1
Authentication-API-Key: 12345
这样看来还可以。 你的输出是什么? 请注意,当前请求是使用GET而不是POST发送的。
编辑:我创建了脚本/test/returnurl.php
,它只是转储$_SERVER
数组,现在我明白了你的意思了。 它像在接收端那样结束的事实并不意味着您没有正确设置标头,因此您正在使用的服务应按预期接收它。
_SERVER
就是这样工作的; 它不能完全给您HTTP标头键。
这样做不是CURL。 检查实际的 HTTP请求,您将看到标题很好。
另一个示例是$_SERVER['CONTENT_TYPE']
,它为您提供Content-Type
HTTP标头的值。
这里没有问题。
我正在使用的脚本传递一个数组,如array(“ Content-type:image / png”)。
也许通过将其放入数组中,可以防止它在处破裂成数组:
我是cURL的新手,所以我什至还无法测试该理论。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.