Не удается подключиться к localhost по волейболу - PullRequest
0 голосов
/ 03 марта 2019

Я использую Volley: 1.1.1 для подключения к localhost в моем приложении для Android

мой код:

public static final String API_URL = "http://127.0.0.1:5365/api/Account/LoginUser?username=A_easy&password=123";

JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, API_URL, null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.i("APIRes", "response : " + response);
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.i("APIRes", "error : " + error.getMessage());
            }
        });
        RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
        queue.add(request);

Я получаю ошибку ошибка: ноль

Logcat показывает это

I/Choreographer: Skipped 170 frames!  The application may be doing too much work on its main thread.
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
I/APIRes: error : null

-Он работает на Почтальон

-Я попытался GET метод, но результат тот же

-Я пробовал 10.0.2.2 и мой IP-адрес , но результат тот же

1 Ответ

0 голосов
/ 03 марта 2019

Запустите свой сервис в 0.0.0.0.Это сделает сервер доступным в той же сети.Таким образом, если IP-адрес вашего компьютера 192.168.X.Y, то вы можете получить доступ к услуге в:

http://192.168.X.Y:5365/api/Account/LoginUser?username=A_easy&password=123

Форма получения дополнительной информации, которую я цитирую из SO Thread :

127.0.0.1 - это обычно IP-адрес, назначенный «петлевому» или локальному интерфейсу.Это «поддельный» сетевой адаптер, который может обмениваться данными только на одном хосте.Он часто используется, когда вы хотите, чтобы сетевое приложение обслуживало клиентов только на одном хосте.Процесс, который прослушивает 127.0.0.1 для соединений, будет получать только локальные соединения на этом сокете.

"localhost" обычно является именем хоста для IP-адреса 127.0.0.1.Обычно он устанавливается в / etc / hosts (или в эквиваленте Windows с именем «hosts» где-то в% WINDIR%).Вы можете использовать его так же, как и любое другое имя хоста - попробуйте "ping localhost", чтобы увидеть, как оно разрешается до 127.0.0.1.

0.0.0.0 имеет несколько разных значений, но в этом контексте, когда серверПриказано прослушивать 0.0.0.0, что означает «прослушивать любой доступный сетевой интерфейс».Адаптер обратной связи с IP-адресом 127.0.0.1 с точки зрения серверного процесса выглядит так же, как и любой другой сетевой адаптер на машине, поэтому сервер, которому предписано прослушивать 0.0.0.0, также будет принимать соединения на этом интерфейсе.

...