我試圖執行一個POST請求到一個服務器,希望內容類型設置爲應用程序/ json的名稱和電子郵件作爲一些鍵。目前,我得到了一個406錯誤,我假設在服務器端工作,但android無法處理響應。我如何調整代碼以獲得200響應?這個POST請求與Android上的JSON有什麼不對?
HttpClient client = new DefaultHttpClient();
HttpEntity entity;
try{
JSONObject j = new JSONObject();
j.put("name" , myName);
j.put("email", myEmail);
HttpPost post = new HttpPost(targetURL);
post.setHeader("Content-Type", "application/json");
StringEntity se = new StringEntity(j.toString(), HTTP.UTF_8);
se.setContentType("application/json");
post.setEntity(se);
HttpResponse response = client.execute(post);
entity = response.getEntity();
Log.d("response", response.getStatusLine().toString());
} catch(Exception e){Log.e("exception", e.toString());}
這是否看起來正確?創建HttpClient時是否需要其中一個響應處理程序?
你發佈什麼服務器?你是否控制它,或者有它的代碼?你能檢查服務器接收到什麼嗎?如果您無法訪問服務器和/或其代碼,則可能需要在開發機器上設置Tomcat實例並進行測試。 – 2012-03-27 18:12:31
是JSON密鑰名稱是否正確?有沒有額外的標題你應該發送? – dldnh 2012-03-27 18:17:18
不幸的是,我沒有訪問服務器。我也不知道是否需要發送其他頭文件(比如這個接受頭文件) – nectarsac 2012-03-27 20:21:15