Отправка JSON на сервер - PullRequest
       6

Отправка JSON на сервер

3 голосов
/ 14 января 2011

Я использую следующую 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.

Я что-то упустил?

1 Ответ

0 голосов
/ 31 октября 2013

Прежде всего, я бы порекомендовал вам использовать Volley, API Google, специально разработанный для HTTP (-ых) запросов с использованием всех типов запросов (PUT, DELETE, POST, GET). Я рекомендую вам посмотреть это: Видео с Google I / O И после этого урока (который охватывает вашу проблему): Ссылка на учебник

Если вы решите попробовать, просто дайте мне знать, и я буду рад вам помочь!

Увидимся!

...