【问题标题】:Trying to HttpPost a file in Android to my server尝试将 Android 中的文件 HttpPost 到我的服务器
【发布时间】:2012-04-10 11:09:42
【问题描述】:

这大致是我现在正在使用的代码:

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("json", json.toString()));
nameValuePairs.add(new BasicNameValuePair("blob", file.getAbsolutePath()));
post_request.setEntity(new UrlEncodedFormEntity(nameValuePairs));

我从服务器返回的回复对于第一个 add() 语句来说是好的,但是对于第二个我没有尝试发送路径,我正在尝试发送文件。起飞.getAbsolutePath() 应该可以解决问题,但它不会让我这样做,因为它只接受字符串。我将如何发送文件?

【问题讨论】:

    标签: java android file file-upload http-post


    【解决方案1】:

    您应该使用 MultipartEntity,而不是 UrlEncodedForm。在 Multipart body 中,您可以存储不同 mime 类型的对象

    【讨论】:

    • 我唯一一次使用UrlEncodedFormEntity 是在我的代码中显示的。如果我只是将其切换为MultipartEntity,它将不起作用。 Eclipse 无法识别它。
    • 您需要 Apache httpmime 的 jar。另见this blog post
    • 当有人提到它们时,我总是发现很难找到确切的 .jar 文件。您能否验证这是否是下载链接? mvnrepository.com/artifact/org.apache.httpcomponents/httpmime/…
    • 当然,但您不需要那个旧的 alpha 版本 :) this 是项目主页。请注意,它是 Apache HTTP 客户端项目的一个组件的一个模块 :) 那里一团糟...
    • 所以我从您发送给我的网页中单击“依赖项”,然后..?对不起,但老实说,我不知道如何解决这件事。不确定 .jar 文件的位置 =( 不过我很感谢您的时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多