2014-12-01 27 views
1

您好我試圖發送一個ArrayList作爲POST請求從我的Android應用程序到服務器的參數。到目前爲止,我有這樣的代碼:如何發送ArrayList <Integer>作爲HTTPPOST請求中的UrlEncodedFormEntity?

HttpResponse response; 

     List<NameValuePair> postParams = new ArrayList<NameValuePair>(2); 
     postParams.add(new BasicNameValuePair("post[text]", text)); 
     postParams.add(new BasicNameValuePair("post[common_comments]", String.valueOf(commonComments)); 
     postParams.add(new BasicNameValuePair("post[wall_ids]", wallIds); 

     UrlEncodedFormEntity encodedParams; 
     try { 
      encodedParams = new UrlEncodedFormEntity(postParams); 
      post.setEntity(encodedParams); 
     } catch (UnsupportedEncodingException e1) { 
      e1.printStackTrace(); 
     } 

但BasicNameValuePair只接收String作爲值。有沒有什麼辦法可以發送ArrayList作爲post [wall_ids]的值?

在此先感謝。

+0

每當我過去遇到過這個問題時,我只是把它作爲一個逗號分隔的'String'與'Integer'值一起發送。我懷疑有更有效的方法來做到這一點;但它適用於我! – 2014-12-01 20:19:16

+0

我的建議是:將您的數組轉換爲* JSON *對象(例如JSON數組)並將其作爲字符串發送 – Rami 2014-12-01 20:20:15

回答

1

BuenodíasCarla。
我不知道,如果你有解決這個(兩個月了大量的時間)... ...但也許它可以幫助你:

for(String wallyID: wallyIDs) 
     postParams.add(new BasicNameValuePair("extraFields[wallyIDs][]", wallyID)); 

這也將是很好的使用「UTF-8」格式,如果你想使用拉丁字符(這會令到服務器上的忘了),這樣的:

HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost(url); 
    httppost.setEntity(new UrlEncodedFormEntity(postParams, HTTP.UTF_8)); 

我有一個列表構造問題...爲什麼你使用2作爲參數,它?? PS:我想做出一個評論,而不是一個答案,因爲我不知道它是否可以按你的意願工作。