2017-02-15 31 views
0

私はネットワークライブラリとしてVolleyを使用しているプロジェクトに取り組んでいます。私はサーバーにデータの配列を投稿する必要があります。Android Volley投稿フォームの配列データ

文字列のparamsを置くための私のコードは

for(int i=0;i<data.size();i++) 
{ 
    jsonObjReq.addStringParam("params",data.get(i).getId()); 
} 

のように見え、それがサーバーにポストしたデータは、単一のデータ

ある

コンテンツディスポジション:フォームデータ;名前= "のparams" 私は

のContent-処分のようなルックスを投稿したいデータHowsoever

5810707039473e73135c9b16

:フォームデータ; NAME = "paramsは[0]"

5810707039473e73135c9b16

コンテンツの廃棄:フォームデータ。名前= "のparams [1]"

5810707039473e73135c9b16

私は手動でこのコード

for(int i=0;i<data.size();i++) 
{ 
    jsonObjReq.addStringParam("params["+i+"]",data.get(i).getId()); 
} 

を使用してsquare bracketsを作成しようとしましたが、データ、それポストが

たContentように見えます処分:フォームデータ。名前= "のparams%5B0%5D"

5810707039473e73135c9b16

コンテンツディスポジション:フォームデータ;名前= "のparams%5B1%5D"

5810707039473e73135c9b16

そのは、サーバー上で解析され得ていない理由です。

私を助けてください。その後、

+0

なぜ 'HashMap 'を試してみませんか? –

答えて

0

最後にvolleyのライブラリ内部コード(私はvolley)。問題を見つけて解決しました。

ゴーcom\android\volley\toolbox\multipart\StringPart.java

ゴーStringPart.javaコンストラクタ

public StringPart(String name, String value, String charset) 
{ 
    . 
    . 
    final String partName = EncodingHelper.encode(name, HTTP.DEFAULT_PROTOCOL_CHARSET); 
    . 
    . 
} 

にし、これを変更:今すぐ

public StringPart(String name, String value, String charset) 
{ 
    . 
    . 
    final String partName = name; 
    . 
    . 
} 

私があったようにイライラしている他の人のために

私は配列をポストするカスタムStringArrayクラスを作成するために取り組んでいますそれを変更する必要のないデータ私がそれを終えるとすぐ、私はソースを掲示します。それまでは助けになるかもしれない。

0

あなたはこの

[ 
5810707039473e73135c9b16, 
5810707039473e73135c9b16, 
5810707039473e73135c9b16 
] 

のようなJSON配列としてすべての配列の値を渡すことができたり、カンマで区切られたアイテム渡すことができます[などfirst_id、second_idを、。]

5810707039473e73135c9b16,5810707039473e73135c9b16,5810707039473e73135c9b16 

とそれらを扱いますあなたの側から

関連する問題