我想用下面代碼 -錯誤而發佈的JSON數據
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);
}
張貼JSON對象
{"venue":"places, US"}
不過我正在下面從服務器 -
{"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」);沒有工作。但是,當我刪除這一行se.setContentEncoding(新的BasicHeader(HTTP.CONTENT_TYPE,「application/json」));它工作,我得到了預期的服務器響應。什麼可能是它的原因?再次感謝您的幫助。 – anujprashar 2012-03-02 19:58:43