【问题标题】:Send large post param in Android在 Android 中发送大的 post 参数
【发布时间】:2010-11-22 15:47:40
【问题描述】:

如何在 Android 中发送大型 (>5MB) 后置参数(以及其他后置参数)?

我目前正在使用org.apache.http.client.methods.HttpPostBasicNameValuePair 的列表来发送帖子参数。

 HttpClient httpclient = new DefaultHttpClient();
 HttpPost httppost = new HttpPost(someURL);
 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
 nameValuePairs.add(new BasicNameValuePair("param1", "value1"));
 nameValuePairs.add(new BasicNameValuePair("param2", hugeValue));
 httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 httpclient.execute(httppost);

hugeValue 是一个非常大的字符串,我想从InputStream 中读取它并在读取时发送。我该怎么做?

【问题讨论】:

  • 走这条路你可能会耗尽内存,尤其是在较小的手机上。您可能需要使用 java.net 包中较低级别的 HttpUrlConnection 内容。
  • 这正是问题所在。我的内存快用完了。
  • 如果您控制服务器端,您可以将字符串写入流、gzip (java.util.zip) 并作为二进制文件上传。一些外部库,如 apache.mime 和 commons.io 会有所帮助。

标签: android http post http-post


【解决方案1】:

CommonsWare 是对的。 HttpUrlConnection 并直接写入输出流将解决您的内存问题。我在自己的应用程序中使用它来上传 10 mb 或更多的图像数据。

根据您的发帖请求,一个很好的例子是:http://www.java.happycodings.com/Other/code21.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-18
    • 2011-11-29
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多