【问题标题】:Java Application send via POST (No Code)Java 应用程序通过 POST 发送(无代码)
【发布时间】:2011-08-01 11:25:52
【问题描述】:

我现在没有可用的代码,但稍后我会描述我的情况并发布代码:)。基本上,我的问题是通过 POST(从 Java 桌面应用程序/客户端)将图像上传到服务器。我在这里找到了一些关于这个问题的讨论,但它要么包括使用 org.apache.commons.httpclient 类,而且我使用 URLConnection 类实现了大部分代码,或者其中存在错误。检查这个选定的答案,以尽可能详细地了解我所遵循的内容:Using java.net.URLConnection to fire and handle HTTP requests

无论如何,我在本地服务器上创建了处理表单和文件上传的 php 脚本。我从与 .php 一起创建的一个静态 html 中检查了它。然后我在没有文件上传的情况下检查了它,它工作正常。 当我发送纯文本文件时,它也可以正常工作。这看起来像是与编码有关的问题。也许某个奇怪的角色正在破坏我的转移?

正如我所说,如果需要,我将在今天晚些时候包含代码,但我对您在通过 POST 发送时与编码图像相关的意见/经验感兴趣。我是否应该做其他事情,上面的链接中没有提到。

问题:通过 http post 在多部分消息中发送二进制文件时,是否需要对实际数据使用某种编码?

抱歉,现在没有代码。

干杯

【问题讨论】:

  • 你有什么问题?你怎么了?你的代码呢?
  • 无代码。添加了问题。我想听听意见。言下之意。没有代码,但和代码有关。

标签: java http-post multipartform-data


【解决方案1】:

至于你的问题:是的,你需要对文件进行编码。

我会为此使用 HttpClient,因为它会为您处理所有这些事情。无需重新发明轮子。代码见How to upload a file using Java HttpClient library working with PHP

【讨论】:

  • 谢谢...最后我可能会使用HttpClient。但是,我花了很多时间尝试调试它,并且真的很想解决这个问题。纯文本文件可以正常传输的事实表明这是一个编码问题。
【解决方案2】:

如果您使用 URLConnection 手动处理 multipart/form-data,我猜您需要将“Content-Transfer-Encoding: binary”添加到图像部分。见W3C's docs

【讨论】:

  • 不幸的是,这不是我想要的解决方案,因为它在我发布的链接中列出:(。无论如何,谢谢。
  • 呃,抱歉,它被滚动条隐藏了...... :) 顺便说一句,你用 IE、Firefox、Chrome、Safari 测试过吗?
  • 有趣的是,没有:)。我实际上专注于这个东西适用于纯文本这一事实,所以我认为它与二进制内容有关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-24
  • 2015-07-05
  • 2016-11-10
相关资源
最近更新 更多