【发布时间】:2012-03-02 19:30:57
【问题描述】:
我正在尝试发布 json 对象
{"venue":"places, US"}
使用下面的代码-
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 30000);
HttpResponse response;
try {
HttpPost post = new HttpPost(url);
StringEntity se = new StringEntity(json.toString());
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
post.setEntity(se);
post.setHeader("Accept", "application/json");
post.setHeader("Content-type", "application/json");
response = client.execute(post);
} catch (Exception e) {
Log.e("Client", "sendJson", e);
}
但是我收到服务器的错误响应-
{"description":"Invalid token character ',' in token \"json, application/json\"","errorCode":2000}
来自服务器的该错误的原因是什么。是因为服务器端的一些标头设置或者我上面粘贴的请求代码有问题。
编辑: 看起来这个错误是由于内容类型设置了 2 次。删除以下行后
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
错误消失了。
但是当我只删除下面的行而不是上面写的行时,它不会删除错误。
post.setHeader("Content-type", "application/json");
为什么只删除第一行有效,而当我删除第二个错误仍然存在,因为两者都在设置内容类型。
我还在其他项目中使用了包含两行代码的代码,并且它在它们中正常工作而没有任何错误。看起来像是服务器端的问题,服务器上的什么设置可能导致了这个问题。
谢谢
【问题讨论】:
标签: android json http-headers