I am trying to send a POST to a URL and then read the response.
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);
}
In the above, AndroidStudio warns that the line
DataOutputStream wr = new DataOutputStream(conn.getOutputStream())
requires API level 19. In order to avail this to older versions, what alternative could I use? I tried searching via Google, but did not seem to find anything helpful.
Try replacing (try-with-resources
with a regular try
block);
try (DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) {
wr.write(postData);
}
with
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();
}
}
This should stop AS from showing any more warnings