2013-01-05 36 views
0

比如我這樣的API,如:
array('make_event' = array('event_id' = "event id", 'start_date' = "some date", 'end_date' = "some else date"))Java Android:如何向API發出複雜的POST請求?

我試圖通過的NameValuePair的名單要,但我不能這樣做,因爲對於對象沒有NameValuePair構造。

主要問題是通過「數組陣列」到setEntity的方法。

回答

1

我已經找到了soluton,如果你需要提出這樣的要求,而無需使用JSON,它應該是這樣的:

List<NameValuePair> pairs = new ArrayList<NameValuePair>(); 
pairs.add(new BasicNameValuePair("make_event[event_id]", "My new Event")); 

...等等每對

然後只是

post.setEntity(new UrlEncodedFormEntity(pairs)); 

而所有這些代碼將生成標準的POST請求。

0

您應該只能使用嵌套的JSONArray s;一旦你創建了複雜的數組,只需使用toString()並將結果插入到NameValuePair

+0

不行,它不起作用。當我嘗試通過在BasicNameValuePair中將JSONArray轉換爲字符串時,服務認爲它是一對 –

+0

然後,您所要做的就是創建一個'BasicNameValuePair'數組,其中某些對的值將被轉換爲'JSONObject'一個字符串。 –

+0

或者你可以編寫一個函數,通過一個'JSONArray'循環並創建一個'BasicNameValuePair []'數組,它的子值是JSON值的字符串表示形式。 –