我正在尝试发布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");


为什么只删除第一行是可行的,而当我删除第二行时,仍然有一个错误,因为两者都在设置内容类型。

另外,我在其他项目中在两行中都使用了该代码,并且在它们中都可以正常工作。看起来像服务器端问题,服务器上的哪些设置可能导致了此问题。

谢谢

最佳答案

尝试删除

post.setHeader("Content-type", "application/json");


线。看来您要两次添加content-type标头,并且服务器存在一些问题。

10-04 22:35