2011-06-02 65 views
4

我試圖通過HTTP獲取XML文件的二進制內容,但服務器只是想給我一種解釋格式(每個\ r會刪除\ r \ n)的。HTTP GET請求獲取XML文件的二進制內容

我的HTTP GET請求很簡單: 「GET http://%s%s%s HTTP/1.0 \ r \ nConnection:保持活動\ r \ n \ r \ n」 個

它適用於extention除了.XML。如果我更改.notxml中的.xml,它就會起作用。

所以,我正在尋找一種方式來二進制內容沒有任何改變的文件。

預先感謝您。

+0

您使用的是什麼Web服務器? – 2011-06-02 14:38:22

+0

這是一個Linux服務器(Apache 2.2.17),我可以訪問一個CPanel。我只需要添加MIME類型(類型和擴展名) – Malandrain 2011-06-02 15:19:12

回答

1

它是由我的FTP客戶端(FileZilla中)引起的。如果我通過FTP傳輸.nxml並以.xml格式重命名,則文件正常。 謝謝你試圖幫助我。

1

問題出在服務器上。當你問它一個XML文件時,它會在一個將擴展映射到MIME類型的表中查找。在默認情況下,XML的MIME類型是text/xmlapplication/xml,這兩種都被認爲是文本格式並受到行結束轉換。要獲取XML的二進制流,您必須找到一種方法來強制服務器將其視爲二進制而不是文本。這意味着更改服務器配置或使用被視爲二進制文件的不同擴展名。

1

這幾乎肯定是一個Mime類型的問題。如果您正在使用IIS我建議檢查出:

http://technet.microsoft.com/en-us/library/bb742440.aspx

+0

@Maladrain,您只需將「Xml」擴展名的MIME類型一起刪除即可。這就是爲什麼「.notxml」工作正常,沒有MIME類型映射。 – 2011-06-02 15:25:05

+0

我無法刪除服務器上的「默認」MIME類型。我可以添加一個新的。 – Malandrain 2011-06-02 15:28:42

+0

@Malandrain只需將「.xml」內容類型從「text/xml」更改爲「text/plain」即可。這應該與刪除它的功能相同。 – 2011-06-02 15:40:23