我正在尝试将 json 发布到来自 android 应用程序的 URL。我浏览了我在这里找到的所有相关答案,但无论我做什么,我都会收到状态码 406。我了解到这意味着服务器不接受我发送的格式,但我找不到什么问题我在做。
以下是相关代码:
@Override
protected HttpResponse doInBackground(Void... params) {
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
HttpClient httpclient = new DefaultHttpClient(httpParams);
HttpPost httpPost = new HttpPost(URL);
HttpResponse httpResponse = null;
httpPost.setHeader("Content-Type", "application/json");
Log.w("json: ", formJSON().toString());
try {
StringEntity se = new StringEntity(formJSON().toString());
se.setContentEncoding("UTF-8");
se.setContentType("application/json");
httpPost.setEntity(se);
httpResponse = httpclient.execute(httpPost);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return httpResponse;
}
我通过JSONLint检查了我的 formJSON() 方法形成的 JSON ,它是有效的。顺便说一句,我希望发送的 json 是 { String, String, String, String and String[] }
编辑:
我自己找到了答案。似乎在测试期间,我发送了一些空字符串,所以 POST 是 406,“格式不可接受”。一旦我尝试手动填写所有内容,我就得到了 200 个。