0

こんばんは。

通常、私はそのような投稿リクエストで作業して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"));

しかし、 content-disposition はどうでしょうか?

ありがとうございました。

4

1 に答える 1

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 Web サイトから取得できると思います。

于 2013-07-12T15:15:51.620 に答える