[英]Sending a network request with a JSON header
因此,我有一个方法可以将请求发送到Web服务器,然后获取响应并将其存储到字符串中。
我的问题是默认情况下它返回XML,但是我希望它返回JSON。 服务器端的工作人员说:“它默认为XML,但您可以发送带有JSON标头的请求,它将返回该请求。”
所以,我的问题是,我需要做什么来请求返回JSON数据而不是XML? (顺便说一句,服务器端的人无法回答这个问题)
谢谢您的帮助
public class NetworkRequest {
private List<NameValuePair> nameValuePairs;
private String URL;
public NetworkRequest(List<NameValuePair> nameValuePairs) {
this.nameValuePairs = nameValuePairs;
}
public String sendRequest() {
String result = "";
InputStream isr = null;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
isr = entity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
}
// convert response to string
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
isr, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
isr.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
return result;
}
public void setURL(String URL) {
this.URL = URL;
}
}
您需要在HttpPost中添加适当的Accept
标头:
httppost.addHeader(new BasicHeader("Accept", "application/json"));
或简单地
httppost.addHeader("Accept", "application/json");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.