晚上好。
通常我正在使用name1=value1&name2=value2
之类的帖子请求,我的代码是
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("name1", "value1"));
httppost.setEntity(new UrlEncodedFormEntity("name2","value2");
但现在我有这样的帖子
-----------------------------17911109517875 Content-Disposition: form-data;
name="PERSON*1[F*2][2664]" value1
-----------------------------17911109517875 Content-Disposition: form-data;
name="PERSON*1[I*3][2776]" value2
-----------------------------17911109517875 Content-Disposition: form-data;
name="PERSON*1[O*4][2778]" value3
所以,据我所知,我应该做
nameValuePairs.add(new BasicNameValuePair("PERSON*1[F*2][2664]", "value1"));
但内容配置是什么?
谢谢。
答案 0 :(得分:1)
您需要使用HttpClient的HttpMime支持。 Android不包含此功能,因此您必须将其与应用程序捆绑在一起。
基于您的帖子的示例可以完成如下:
MultipartEntity mpe= new MultipartEntity();
FormBodyPart part1= new FormBodyPart("PERSON*1[F*2][2664]", new StringBody("value1"));
FormBodyPart part2= new FormBodyPart("PERSON*1[I*3][2776]", new StringBody("value2"));
FormBodyPart part3= new FormBodyPart("PERSON*1[O*4][2778]", new StringBody("value3"));
mpe.addPart(part1);
mpe.addPart(part2);
mpe.addPart(part3);
以上输出到流的示例如下:
--ZV5t1WLAh04TJTqjyBJBSDL3M69xu0A
Content-Disposition: form-data; name="PERSON*1[F*2][2664]"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
value1
--ZV5t1WLAh04TJTqjyBJBSDL3M69xu0A
Content-Disposition: form-data; name="PERSON*1[I*3][2776]"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
value2
--ZV5t1WLAh04TJTqjyBJBSDL3M69xu0A
Content-Disposition: form-data; name="PERSON*1[O*4][2778]"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
value3
--ZV5t1WLAh04TJTqjyBJBSDL3M69xu0A--
我相信图书馆或多或少是独立的,可以从httpclient网站上检索。