Мое приложение не может отправить GET, OkHttp - PullRequest
0 голосов
/ 09 июня 2018

У меня странная проблема.
У меня есть служба в localhost:8080, и все хорошо настроено, я могу открыть эту службу в браузере, используя устройство Android (реальное, а не эмулятор).На мой взгляд, в моем коде что-то не так.

Но в приложении я получил java.net.ConnectException: Failed to connect to localhost/127.0.0.1:8080

Это мой код:

private void sendGET() {

        OkHttpClient.Builder client = new OkHttpClient.Builder();
        client.authenticator(new Authenticator() {
            @Override
            public Request authenticate(Route route, Response response) throws IOException {
                String credential = Credentials.basic("admin", "admin");
                return response.request().newBuilder().header("Authorization", credential).build();
            }
        });

        Request request = new Request.Builder()
                .url("http://localhost:8080/users")
                .build();

        client.build().newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Log.w("http", e);
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Log.w("http", response.body().string());
            }
        });

    }

Что здесь не так?

1 Ответ

0 голосов
/ 09 июня 2018

Могут возникнуть проблемы с отображением localhost фактического IP-адреса.Попробуйте использовать свой фактический IP-адрес:

Request request = new Request.Builder()
            .url("http://192.168.0.1:8080/users")  // for example
            .build();

Выше предполагается, что IP-адрес 192.168.0.1.

Чтобы найти свой IP-адрес, введите ipconfig в Windows или ifconfig вLinux.

...