【问题标题】:HTTP GET request to get binary content of an XML file获取 XML 文件二进制内容的 HTTP GET 请求
【发布时间】:2011-06-02 14:27:44
【问题描述】:

我正在尝试通过 HTTP 获取 XML 文件的二进制内容,但服务器只是想给我一种解释格式(为每个 \r\n 删除 \r)。

我的 HTTP GET 请求很简单:“GET http://%s%s%s HTTP/1.0\r\nConnection: Keep-Alive\r\n\r\n”

它适用于除 .xml 之外的扩展。如果我更改 .notxml 中的 .xml,它会起作用。

所以,我正在寻找一种无需对文件进行任何更改即可获取二进制内容的方法。

提前谢谢你。

【问题讨论】:

  • 你使用的是什么网络服务器?
  • 这是一个 linux 服务器 (Apache 2.2.17),我可以访问一个 CPanel。我可以添加 MIME-Type(类型和扩展)

标签: xml http binary get format


【解决方案1】:

问题出在服务器上。当你要求它提供一个 XML 文件时,它会在一个将扩展名映射到 Mime-Types 的表中查找。在默认情况下,XML 的 mime-type 是 text/xmlapplication/xml,这两种格式都被视为文本格式并受制于行尾转换。要获得 XML 的二进制流,您必须找到一种方法来强制服务器将其视为二进制而不是文本。这意味着更改服务器配置或使用被视为二进制的不同扩展。

【讨论】:

    【解决方案2】:

    这几乎肯定是 Mime-Type 问题。如果您使用的是 IIS,我建议您检查一下:

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

    【讨论】:

    • @Maladrain 您只想一起删除“Xml”扩展名的 MIME-Type。这就是“.notxml”正常工作的原因,没有 MIME-Type 映射。
    • 我无法删除服务器上的“默认”MIME 类型。我可以添加一个新的。
    • @Malandrain 只需将“.xml”内容类型从“text/xml”更改为“text/plain”。这应该与删除它具有相同的功能。
    • @Malandraion 对不起,内容类型应该是“应用程序/二进制”而不是“纯文本”。
    • 我尝试过:为 xml 添加新的 MIME 类型应用程序/二进制文件,并使用“内容类型:应用程序/二进制”或“接受:应用程序/二进制”获取请求。没有新的 MIME-Type 的获取请求也是一样的。没有成功:(
    【解决方案3】:

    这是由我的 FTP 客户端 (FileZilla) 引起的。如果我通过 FTP 传输 .nxml 并在 .xml 中重命名,则文件正常。 感谢您尝试帮助我。

    【讨论】:

      猜你喜欢
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      相关资源
      最近更新 更多