Внутри AsyncTask
Я хочу, чтобы отправлять данные:Невозможно создать OutputStream внутри AsyncTask
@Override
protected Void doInBackground(Void... params) {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected()) {
//System.setProperty("http.keepAlive", "false");
HttpURLConnection con = null;
OutputStream os = null;
OutputStreamWriter writer = null;
try {
String donnees = URLEncoder.encode("param1","UTF-8").concat("=").concat(URLEncoder.encode("valeur1","UTF-8"));
String strUrl = confUrl.concat("outil.php?action=OutilImporterDonneesMobile");
URL url = new URL(strUrl);
con = (HttpURLConnection)url.openConnection();
con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
con.setDoOutput(true);
con.setChunkedStreamingMode(0);
if (con != null && con.getResponseCode() == HttpURLConnection.HTTP_OK) {
try {
os = con.getOutputStream();
if (os != null) {
writer = new OutputStreamWriter(os);
if (writer != null) {
writer.write(donnees);
writer.flush();
}
}
} catch (IOException e) {
error = true;
err = "cannot create outputstream";
}
} else {
error = true;
err = contextInsideSync.getResources().getString(R.string.errBadHTTPResponse);
}
} catch (MalformedURLException e) {
error = true;
err = contextInsideSync.getResources().getString(R.string.errBadUrl);
} catch (UnsupportedEncodingException e) {
error = true;
err = contextInsideSync.getResources().getString(R.string.errEncodageUTF8);
} catch (IOException e) {
error = true;
err = contextInsideSync.getResources().getString(R.string.errAccessError);
} catch (Exception eo) {
error = true;
err = eo.getMessage();
}
finally {
if (writer != null) { try { writer.close(); } catch (IOException e) {
error = true;
err = contextInsideSync.getResources().getString(R.string.errAccessError);
} }
if (os != null) { try { os.close(); } catch (IOException e1) {
error = true;
err = contextInsideSync.getResources().getString(R.string.errAccessError);
} }
if (con != null) con.disconnect();
}
} else {
error = true;
err = contextInsideSync.getResources().getString(R.string.errNoNetwork);
}
return null;
}
Во время выполнения IOException
возникает при попытке создать outputStream
. Так что же не так?
, пожалуйста, отправьте исключение –
java.net.ProtocolException: не удается написать тело запроса после того, как ответ был прочитан – pheromix