2011-01-14 2 views
3

Я запускаю следующий Java, запрос PUT HttpURLConnection PUT с данными JSON, которые будут отправляться с устройства Android. После этого я обработаю любые возникшие исключения. GET работает отлично.Отправка JSON на сервер

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 содержит JSONObjects, ключи которого я знаю, верны. Сервер довольно стандартный и ожидает HTTP PUT с телами JSON.

Я что-то не хватает?

ответ

0

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

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

См. Ya!

+0

Спасибо за предложение. Этот вопрос довольно старый, и все перешло. С тех пор я использую Volley, или Picasso. – SK9

+0

Хорошо, удачи чувак! – Leonardo

Смежные вопросы