JavaAndroid:如何向API发出复杂的POST请求?
例如,我喜欢这样的API:JavaAndroid:如何向API发出复杂的POST请求?,android,post,request,Android,Post,Request,例如,我喜欢这样的API: array('make\u event'=array('event\u id'=event id','start\u date'=some date','end\u date'=some else date)) 我试图通过NameValuePair的列表来完成,但我做不到,因为没有对象的NameValuePair构造函数 主要问题是将“数组的数组”传递给setEntity方法。您应该能够使用嵌套的JSONArrays;一旦创建了复杂数组,只需使用toString()并
array('make\u event'=array('event\u id'=event id','start\u date'=some date','end\u date'=some else date))
我试图通过NameValuePair的列表来完成,但我做不到,因为没有对象的NameValuePair
构造函数
主要问题是将“数组的数组”传递给
setEntity
方法。您应该能够使用嵌套的JSONArray
s;一旦创建了复杂数组,只需使用toString()
并将结果插入到NameValuePair
我找到了解决方案,如果您需要在不使用JSON的情况下发出这样的请求,它将如下所示:
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("make_event[event_id]", "My new Event"));
所有这些代码都将生成standart POST请求。不,它不起作用。当我尝试在BasicNameValuePair中传递转换为字符串的JSONArray时,服务认为它是一对,而您所要做的就是创建一个
BasicNameValuePair
s的数组,其中一些对上的值将是转换为字符串的JSONObject
。或者您可以编写一个函数,在JSONArray
中循环,并创建一个BasicNameValuePair[]
数组,其子级值是JSON值的字符串表示形式。
post.setEntity(new UrlEncodedFormEntity(pairs));