【问题标题】:Can't POST MultiPartEntity in Android application无法在 Android 应用程序中发布 MultiPartEntity
【发布时间】:2013-05-24 20:06:56
【问题描述】:

我正在尝试在 Android 中使用 MultiPartEntity 和 HttpClient 发送图像,但不断收到异常:java.lang.UnsupportedOperationException: Multipart form entity does not implement #getContent()

这是我的代码:

public boolean enrollImage(String id, byte[] image) {
    HttpClient httpClient = new DefaultHttpClient();
    HttpPost httpPost = new HttpPost("https://example.com/"+id+"/images/");
    httpPost.addHeader("Authorization", "Basic " + Base64.encodeToString(("user"+":"+"password").getBytes(),Base64.NO_WRAP));
    MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
    entity.addPart("image", new ByteArrayBody(image, "image/jpg", "image.jpg"));
    httpPost.setEntity(entity);
    HttpResponse response;
    try {
        response = httpClient.execute(httpPost);
        HttpEntity responseEntity = response.getEntity();
        String responseString = EntityUtils.toString(entity);
        JSONObject json = new JSONObject(responseString);
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return true;
}

我已将较新的 Apache 库 httpmime-4.2.5.jarhttpclient-4.2.5.jarhttpcore-4.2.4.jarapache-mime4j-core-0.7.2.jar 添加到我的项目中。

我怎样才能让它运行,以便我可以发布

【问题讨论】:

  • goo.gl/9qKma 您应该对照您的多部分代码检查该示例

标签: android apache post httpclient multipartform-data


【解决方案1】:

事实证明,我只是将我发送的请求实体与我想解析为 json 的响应实体混淆了。该代码的第 12 行应该是

String responseString = EntityUtils.toString(responseEntity);

不是

String responseString = EntityUtils.toString(entity);

问题已解决。猜猜我该买rubber duck

【讨论】:

  • 每个人都需要一只橡皮鸭!
  • @QRohlf 感谢您链接我从未读过的那篇维基百科文章。
猜你喜欢
  • 2013-06-13
  • 2014-04-29
  • 1970-01-01
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多