Android 在请求中将对象数组作为url参数传递
我需要在http请求的url中放置一个对象数组(每个对象有2个字段)作为参数。我该怎么做?这个链接应该是什么样子?最好的解决方案是以json或xml格式发送http post请求。您可以使用您的结构创建一个xml,即一个对象数组,每个对象有两个字段,然后将其转换为字符串, 例如,Android 在请求中将对象数组作为url参数传递,android,http,httprequest,Android,Http,Httprequest,我需要在http请求的url中放置一个对象数组(每个对象有2个字段)作为参数。我该怎么做?这个链接应该是什么样子?最好的解决方案是以json或xml格式发送http post请求。您可以使用您的结构创建一个xml,即一个对象数组,每个对象有两个字段,然后将其转换为字符串, 例如, String input = String.format("<Request><Data><Id>%s</Id></Data>
String input = String.format("<Request><Data><Id>%s</Id></Data>
</Request>",studentIdSelected);
或者,您也可以使用json。我相信您是对的,但我需要在url中添加参数。无论如何,现在我正在尝试使用JSONObject和JSONArray类来完成我需要的工作。我认为这是一个很好的解决方案,如果有人愿意尝试的话。这是一个很好的解决方案,但需要编码特殊字符,如“[”或“,”。我只是在Base64中编码整个内容,然后将真正长的参数放在url中。它可以工作;PThx用于此解决方案,但我将使用JSONObject和JSONArray,因为服务器需要json格式。因此,我以前没有说过:/
public static String retriver(String Url, String input) {
String responseString = null;
StringEntity stringEntity;
HttpPost postRequest = new HttpPost(Url);
try {
Log.e("string is", input + "\n" + Url);
stringEntity = new StringEntity(input, "UTF-8");
stringEntity.setContentType("application/atom+xml");
postRequest.setEntity(stringEntity);
Log.v("Post", "Posted");
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(postRequest);
HttpEntity getResponseEntity = response.getEntity();
responseString = EntityUtils.toString(getResponseEntity);
} catch (Exception e) {
// TODO: handle exception
postRequest.abort();
Log.w("HttpPostRetreiver", "Error for URL " + Url, e);
}
return responseString;
}