2015-06-27 2 views
1

Я ищу пример проекта, который демонстрирует, как включить удаленный объект JSON в приложение Android, не используя теперь устаревший HttpClient. Он должен работать с SDK версии 14 и выше. Его было трудно найти что-нибудь.Android JSON без устаревших HttpClient

Любая помощь очень ценится.

Спасибо

ответ

0

попробовать использовать HttpURLConnection вместо этого.

HttpURLConnection   conn    = null; 
  
OutputStream          os   = null; 
InputStream           is   = null; 
ByteArrayOutputStream baos = null; 
  
conn = (HttpURLConnection)url.openConnection(); 
conn.setConnectTimeout(CONN_TIMEOUT * 1000); 
conn.setReadTimeout(READ_TIMEOUT * 1000); 
conn.setRequestMethod(POST); 
conn.setRequestProperty("Cache-Control", "no-cache"); 
conn.setRequestProperty("Content-Type", "application/json"); 
conn.setRequestProperty("Accept", "application/json"); 
conn.setDoOutput(true); 
conn.setDoInput(true); 
  
JSONObject job = new JSONObject(); 
job.put("id", "asdf"); 
job.put("pw", "asdf"); 
  
os = conn.getOutputStream(); 
os.write(job.toString().getBytes()); 
os.flush(); 
  
String response; 
  
int responseCode = conn.getResponseCode(); 
  
if(responseCode == HttpURLConnection.HTTP_OK) { 
  
    is = conn.getInputStream(); 
    baos = new ByteArrayOutputStream(); 
    byte[] byteBuffer = new byte[1024]; 
    byte[] byteData = null; 
    int nLength = 0; 
    while((nLength = is.read(byteBuffer, 0, byteBuffer.length)) != -1) { 
        baos.write(byteBuffer, 0, nLength); 
    } 
    byteData = baos.toByteArray(); 
      
    response = new String(byteData); 
      
    JSONObject responseJSON = new JSONObject(response); 
    Boolean result = (Boolean) responseJSON.get("result"); 
    String age = (String) responseJSON.get("age"); 
    String job = (String) responseJSON.get("job"); 
      
    Log.i(TAG, "DATA response = " + response); 
} 
Смежные вопросы