首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置HTTP请求"Content-Type“

设置HTTP请求"Content-Type“
EN

Stack Overflow用户
提问于 2012-03-22 22:01:33
回答 2查看 60K关注 0票数 9

如何设置HTTP请求的内容类型?

我试过了:

代码语言:javascript
复制
$headers['Accept'] = 'application/xml';
$headers['Content-Type'] = 'application/xml';

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

这就是结果:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-22 22:04:19

我相信头必须是一个普通数组,它的元素是完整的key:value头,而不是关联数组:

代码语言:javascript
复制
$headers = array();
$headers[] = 'Accept: application/xml';
$headers[] = 'Content-Type: application/xml';

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

这是在curl_setopt() documentation.中指定的

票数 28
EN

Stack Overflow用户

发布于 2012-03-22 22:16:38

你为你的请求设置了一个接受类型(并使用Michael的回答,你应该将他的回答算作回答直接问题,因为它确实如此),这并不要求服务器与该内容类型产生共鸣。

如果请求的另一端是静态文件,则必须确保web服务器使用MIME类型application/xml发送该文件。如果它以.xml结尾,那么Apache和IIS都已经这样做了。如果它是非标准的文件扩展名,但您希望将其作为应用程序/xml发送,则必须让服务器管理器设置httpd.conf或.htaccess,以便为该文件添加mime类型。在IIS中,您可以使用GUI管理工具执行相同的操作,为文件扩展名添加一个mime类型,如application/xml。

如果请求的另一端是服务器端脚本语言,如PHP、Perl、Python、ColdFusion、ASP、ASP.net等,那么您需要在被调用的脚本中使用该语言中的适当方法/函数来发出内容类型标头,并将其设置为应用程序/xml。

更新:您在注释中说您正在使用WizTools发出一个请求,该请求确实得到了应用程序/xml的返回。如果您想克隆该环境,请在curl请求中发送它发送的所有标头。一种猜测是,用户代理可能正在发挥作用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9823810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档