2016-10-10 6 views
0

Я пытаюсь отправить объект Json на свой веб-сервер с помощью android-приложения. Каждый пример, который я нашел, использует HttpClient, который был удален андроидом 6. Пожалуйста, может кто-нибудь дать мне пример метода HttpURLConnection.Как отправить объект Json с HttpURLConnection в Android

+0

Почему бы вам просто не использовать HTTP-клиент Retrofit и избавить себя от всех проблем? –

+0

Примечание. Не проблема с Android, но лучшие библиотеки существуют. Volley и OkHttp являются самыми популярными –

+1

И еще один. http://stackoverflow.com/questions/21404252/post-request-send-json-data-java-httpurlconnection –

ответ

0

Вот пример того, как можно использовать HttpURLConnection:

JSONObject json = getJSONData(); 
String targetURL = getTargetURL(); 

HttpURLConnection con = (HttpURLConnection)new URL(targetURL).openConnection(); 
con.setDoOutput(true); 
con.setRequestMethod("POST"); 
con.setRequestProperty("Content-Type", "application/json"); 
con.setChunkedStreamingMode(0); 

StringBuilder output = new StringBuilder(); 
output.append("data="); 
output.append(URLEncoder.encode(data.get(json.toString()), "UTF-8")); 

BufferedOutputStream stream = new BufferedOutputStream(con.getOutputStream()); 
stream.write(output.toString().getBytes()); 
out.flush(); 

con.connect(); 

Exception result = null; 
int responseCode = con.getResponseCode(); 
switch(responseCode) { 
    case 200: //all ok 
     break; 
    case 401: 
    case 403: 
     // authorized 
     break; 
    default: 
     //whatever else... 
     String httpResponse = con.getResponseMessage(); 
     BufferedReader br = new BufferedReader(new InputStreamReader(con.getErrorStream())); 
     String line; 
     try { 
      while ((line = br.readLine()) != null) { 
       Log.d("error", " " + line); 
      } 
     } 
     catch(Exception ex) { 
      //nothing to do here 
     } 

     break; 
} 

con.disconnect(); 

Тем не менее, вы должны серьезно рассмотреть возможность использования существующей библиотеки, которая будет скрывать большинство из них от вас.

+0

Я читал об Ионе и Волейле, но не уверен, что использовать или научиться двигаться вперед. Не могли бы вы посоветовать мне учиться на будущее? – master

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