簡體   English   中英

設置HTTP請求“內容類型”

[英]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);

這在curl_setopt()文檔中指定

你為你的請求設置了一個接受類型(並使用邁克爾的答案,你應該把他的答案都算作回答直接問題,因為它確實如此)。 這並不要求服務器重新使用該內容類型。

如果請求的另一端是靜態文件,則必須確保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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM