POST запрос не отправляется на сервер

174
02 сентября 2018, 20:00
String url = "http://here_is_my_url";
String json = "{ 'first': 'hello', 'second': 'word' }";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_registration);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Thread thread = new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        String response = uploadToServer(url, json);
                        System.out.println(response);
                    } catch (IOException e) {
                        e.printStackTrace();
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            });
            thread.start();
        }
    });
}

private String uploadToServer(String destinationUrl, String json) throws IOException, JSONException {
    URL url = new URL(destinationUrl);
    HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
    httpURLConnection.setRequestMethod("POST");
    httpURLConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
    byte[] postDataBytes = json.getBytes("UTF-8");
    httpURLConnection.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
    httpURLConnection.setDoOutput(true);
    httpURLConnection.
            getOutputStream().
            write(postDataBytes);
    StringBuilder stringBuilder = new StringBuilder();
    int HttpResult = httpURLConnection.getResponseCode();
    if (HttpResult == HttpURLConnection.HTTP_OK) {
        BufferedReader bufferedReader = new BufferedReader(
                new InputStreamReader(httpURLConnection.getInputStream(), "utf-8"));
        String line = null;
        while ((line = bufferedReader.readLine()) != null) {
            stringBuilder.append(line + "\n");
        }
        Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
        startActivity(intent);
        bufferedReader.close();
    } else {
        BufferedReader bufferedReader = new BufferedReader(
                new InputStreamReader(httpURLConnection.getErrorStream(), "utf-8"));
        String line = null;
        while ((line = bufferedReader.readLine()) != null) {
            stringBuilder.append(line + "\n");
        }
        bufferedReader.close();
    }
    return stringBuilder.toString();
}

У меня возникли проблемы с отправкой JSON на сервер, в логах видна следующая ошибка: W/System.err: java.net.SocketException: Network is unreachable Что может быть не так?

Answer 1

Network is unreachable Означает сие ровно одно: программа не может соединиться с сервером. Не настроена сеть. Возможно, даже не с серкевом по ссылке, а с DNS

READ ALSO
Нельзя добавить файл в SVN в Intellij idea

Нельзя добавить файл в SVN в Intellij idea

Есть svn сервер в интернетеОткрыл idea, сделал checkout

166
Распознавание свиста

Распознавание свиста

Недавно узнал о приложениях для android, с помощью которых можно найти телефон свистомТы свистишь, а телефон начинает пищать

185
Java jetty перегрузка

Java jetty перегрузка

использую jetty для back-endдо этого писал небольшие проекты, а сейчас хочу перейти на новый уровень

182
Как задать значение fixedRateString в Spring Scheduling из внешнего property файла

Как задать значение fixedRateString в Spring Scheduling из внешнего property файла

Имеется Spring Boot Application с методом, который должен вызываться по определенному fixedRateА так же property файл с настройками, который находится в следующей...

185