2011-06-02 116 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