Я использую следующую Java, запрос PUT HttpURLConnection с данными JSON, которые будут отправлены с устройства Android. Я обработаю все возникшие исключения после того, как это сработает. GET работает просто отлично.
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(nameString, pwdString.toCharArray());
}
});
url = new URL(myURLString);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setChunkedStreamingMode(0);
urlConnection.setRequestMethod("PUT");
urlConnection.setRequestProperty("Content-Type", "application/json");
OutputStream output = null;
try {
output = urlConnection.getOutputStream();
output.write(jsonArray.toString().getBytes());
} finally {
if (output != null) { output.close(); }
}
int status = ((HttpURLConnection) urlConnection).getResponseCode();
System.out.println("" + status);
urlConnection.disconnect();
Я получаю ошибку HTTP 500 (внутренний код ошибки), что неожиданное свойство блокирует запрос. JSONArray содержит объекты JSONObject, ключи которых, как мне известно, являются правильными. Сервер довольно стандартный и ожидает HTTP PUT с телами JSON.
Я что-то упустил?