Android HttpPost与Gzip和NameValuePair

时间:2011-09-27 03:52:13

标签: android http gzip

是否可以为HttpPost设置2个实体?像:

HttpPost post = new HttpPost("http://www.abc.com");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("A",
                a));
        nameValuePairs.add(new BasicNameValuePair("B", b));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));

post.setHeader("Accept-Encoding", "gzip");

ByteArrayEntity bae = new ByteArrayEntity(compress(json));

post.setEntity(bae);
HttpResponse resp;
resp = client.execute(post);

我正在尝试告诉服务器有一些参数和一个zip文件。

2 个答案:

答案 0 :(得分:3)

是您可以使用nameValuePairs发送zip文件并传递参数。转到下面的链接,你可能会得到你的解决方案。

http://vikaskanani.wordpress.com/2011/01/11/android-upload-image-or-file-using-http-post-multi-part/

Android upload multi files to server via http post

在此链接中将您的zip文件地址放在图像的位置。你可能需要做一些修改。

答案 1 :(得分:1)

不喜欢这样。您需要使用多部分实体,如果它相对简单,您可以手动编码,或使用org.apache.http.entity.mime.MultipartEntity(不是Android SDK的一部分)。在SO上有关于它的多篇帖子,搜索'android multipart'。