Я получаю исключения, когда пытаюсь выполнить POST, и в моем JSON есть несколько международных символов.
Это код, который я использую:
HttpPost request = new HttpPost(serviceURL + url);
request.addHeader("Authorization", "Basic " + Preferences.getAuthorizationTicket(mContext));
request.addHeader("DeviceSerialNumber", Utility.getDeviceSerialNumber(mContext));
request.addHeader("OSVersion", "Android v" + Build.VERSION.RELEASE);
StringEntity entity = new StringEntity(requestData);
entity.setContentType("application/json;charset=UTF-8");
entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json;charset=UTF-8"));
request.setEntity(entity);
ResponseHandler<String> handler = new BasicResponseHandler();
response.Body = mHttpClient.execute(request, handler);
response.Code = HttpURLConnection.HTTP_OK;
response.Message = "OK";
И это ошибка, которую я получаю:
org.apache.http.client.HttpResponseException:
Неверный запрос на
org.apache.http.impl.client.BasicResponseHandler.handleResponse (BasicResponseHandler.java:71)
в
org.apache.http.impl.client.BasicResponseHandler.handleResponse (BasicResponseHandler.java:59)
в
org.apache.http.impl.client.AbstractHttpClient.execute (AbstractHttpClient.java:657)
в
org.apache.http.impl.client.AbstractHttpClient.execute (AbstractHttpClient.java:627)
в
org.apache.http.impl.client.AbstractHttpClient.execute (AbstractHttpClient.java:616)
в
com.idatt.common.AsyncProcessor.processPOST (AsyncProcessor.java:550)
в
com.idatt.common.AsyncProcessor.PostMail (AsyncProcessor.java:367)
в
com.idatt.common.AsyncProcessor.doInBackground (AsyncProcessor.java:120)
в
com.idatt.common.AsyncProcessor.doInBackground (AsyncProcessor.java:28)
в
android.os.AsyncTask $ 2.call (AsyncTask.java:185)
в
java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java:305)
в
java.util.concurrent.FutureTask.run (FutureTask.java:137)
в
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1068)
в
java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:561)
в
java.lang.Thread.run (Thread.java:1096)
Когда requestData не имеет международных (русских, польских и т. Д.) Букв, он работает нормально. Что мне не хватает? Или еще лучше, как мне получить трафик с эмулятора, захваченного в Fiddler или что-то еще?