1
I need to check if there was any error in the reply of onPostExecute or gave time out on the server, because sometimes it gives some error in the process and this method does not even start, as I could do such check?
I call him that:
ConnectivityManager connMgr = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
url = "https://...";
parametros = "paramentro=" + string;
new minhaclasse.SolicitaDados().execute(url);
} else {
Toast.makeText(getApplicationContext(), "Erro, tente novamente!", Toast.LENGTH_LONG).show();
}
And then he executes:
private class SolicitaDados extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
return Conexao.postDados(urls[0], parametros);
}
@Override
protected void onPostExecute(String resultado) {
if(resultado != null && resultado != "") {
}
}
}
Connection class:
public class Conexao {
public static String postDados(String urlUsuario, String parametrosUsuario) {
URL url;
HttpURLConnection connection = null;
try {
url = new URL(urlUsuario);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
connection.setRequestProperty("Content-Lenght", "" + Integer.toString(parametrosUsuario.getBytes().length));
connection.setRequestProperty("Content-Language", "pt-BR");
//connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
connection.setUseCaches(false);
connection.setDoInput(true);
connection.setDoOutput(true);
OutputStreamWriter outPutStream = new
OutputStreamWriter(connection.getOutputStream(), "utf-8");
outPutStream.write(parametrosUsuario);
outPutStream.flush();
outPutStream.close();
InputStream inputStream = connection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
String linha;
StringBuffer resposta = new StringBuffer();
while((linha = bufferedReader.readLine()) != null) {
resposta.append(linha);
resposta.append('\r');
}
bufferedReader.close();
return resposta.toString();
} catch (Exception erro) {
return null;
} finally {
if(connection != null) {
connection.disconnect();
}
}
}
}
If you put the 'doInBackground' code snippet inside a Try-catch block would resolve? I didn’t run the tests.
– Guilherme Guini