[英]Set HTTP Request “Content-Type”
如何设置HTTP请求的内容类型?
我试过这个:
$headers['Accept'] = 'application/xml';
$headers['Content-Type'] = 'application/xml';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
这就是结果:
HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Type: text/html;charset=UTF-8
Date: Thu, 22 Mar 2012 14:04:36 GMT
但到目前为止没有运气......
在HTTP响应中,我需要做什么来获取Content-Type: application/xml
?
我相信标头必须是一个普通的数组,其元素是完整的键:值标题,而不是关联数组:
$headers = array();
$headers[] = 'Accept: application/xml';
$headers[] = 'Content-Type: application/xml';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
你为你的请求设置了一个接受类型(并使用迈克尔的答案,你应该把他的答案都算作回答直接问题,因为它确实如此)。 这并不要求服务器重新使用该内容类型。
如果请求的另一端是静态文件,则必须确保Web服务器使用MIME类型application / xml发送该文件。 如果它以.xml结尾,那么Apache和IIS都已经这样做了。 如果它是其他非标准文件扩展名,但您希望它作为application / xml发送,那么您必须让服务器管理器设置httpd.conf或.htaccess以添加mime类型文件。 在IIS中,您使用GUI管理工具执行相同的操作,将文件扩展名的mime类型添加为application / xml。
如果请求的另一端是服务器端脚本语言,如PHP,Perl,Python,ColdFusion,ASP,ASP.net等,那么您需要使用该语言的相应方法/函数来调用脚本发出内容类型标头并将其设置为application / xml。
更新:你在评论中说你正在使用WizTools发出一个返回application / xml的请求。 如果要克隆该环境,请在curl请求中发送它发送的所有标头。 一个猜测是用户代理可能在游戏中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.