#android
#Android
Вопрос:
Я пытаюсь опубликовать комментарий на веб-сайте, сообщение, похоже, не выдает ошибку, но, похоже, тоже не сработало. Я не уверен, где я ошибся? Я вызываю это в отдельном потоке
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
HttpURLConnection conn = null;
try {
String urlString = mainUrl "?name=" name;
URL url = new URL(urlString);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.getOutputStream().write(comment.getBytes("UTF8"));
conn.connect();
int responseCode = conn.getResponseCode();
Log.d("Response Code: ", "" responseCode);
} catch (Exception e) {
Log.e("POST ERROR", e.toString());
}
finally {
if (conn != null) {
conn.disconnect();
}
}
}
});
thread.start();
Комментарии:
1. Очистить буфер выходного потока
Ответ №1:
Попробуйте это:
try {
String urlString = mainUrl "?name=" name;
url = new URL(urlString);
urlConnection =(HttpURLConnection) url.openConnection();
urlConnection.setRequestProperty("Content-Type", "application/json");
urlConnection.setRequestMethod("POST");
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
urlConnection.connect();
setupDataToDB();
outputStreamWriter = new OutputStreamWriter(urlConnection.getOutputStream());
outputStreamWriter.write(dataToWrite.toString());
Log.e("Data To Write", dataToWrite.toString());
outputStreamWriter.flush();
outputStreamWriter.close();
int responseCode = urlConnection.getResponseCode();
Log.e("Response Code ", String.valueOf(responseCode));
if (responseCode == 404){
Log.e("Status Code", "404");
}else if (responseCode == 200){
Log.e("Status Code", "200");
} catch (Exception e) {
urlConnection.getErrorStream();
e.printStackTrace();
}
private void setupDataToDB() {
dataToWrite = new JSONObject();
try {
dataToWrite.put("comment", comment);
} catch (JSONException e) {
e.printStackTrace();
}
}
и не забудьте объявить их как глобальные переменные:
private HttpURLConnection urlConnection;
private URL url;
private OutputStreamWriter outputStreamWriter;
private JSONObject dataToWrite;
Надеюсь, это поможет!!!