2016-02-19 8 views
0

Я пытаюсь отправить POST на URL-адрес, а затем прочитать ответ.Что следует использовать на платформах pre-Kitkat

HttpURLConnection conn = (HttpURLConnection) registerURL.openConnection(); 
conn.setDoOutput(true); 
conn.setDoInput(true); 
conn.setInstanceFollowRedirects(false); 
conn.setRequestMethod("POST"); 
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
conn.setRequestProperty("charset", "utf-8"); 
conn.setRequestProperty("Content-Length", Integer.toString(postDataLength)); 
conn.setUseCaches(false); 
try (DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) { 
    wr.write(postData); 
} 

В вышеприведенном AndroidStudio предупреждает, что линия

DataOutputStream wr = new DataOutputStream(conn.getOutputStream()) 

требует уровень API 19. Для того, чтобы воспользоваться этим для более старых версий, какую альтернативу я мог бы использовать? Я пробовал искать через Google, но, похоже, не нашел ничего полезного.

+0

Android студия жалующихся, потому что вы используете 'примерка с-resources' –

ответ

1

Попробуйте заменить (try-with-resources с помощью обычного блока try);

try (DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) { 
    wr.write(postData); 
} 

с

DataOutputStream wr = null; 

    try { 
     wr = new DataOutputStream(conn.getOutputStream()); 
     wr.write(postData); 

    }catch (Exception e){ 
     e.printStackTrace(); 
    }finally { 
     if(wr != null) 
      try { 
       wr.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
    } 

Это должно остановить AS показывать больше никаких предупреждений

+0

Спасибо за вашу помощь. Я искренне ценю это. –