Я только что добавил компоненты С# Web API (модели и контроллеры веб-интерфейсов) к копии существующего проекта localhost
.
Этот веб-API GET-методы следует вызывать из приложения для Android. В эта ссылка объяснила, что я должен использовать 10.0.2.2
в эмуляторе Android, чтобы получить компьютер 127.0.0.1
.
Когда я это сделал, это не сработало для моего HttpRequest в приложении для Android. Поэтому я пошел в браузер Android и набрал его напрямую, и он также не работал.
Затем я попытался использовать 127.0.0.1
вместо localhost
в своем браузере компьютера, и по какой-то неизвестной причине он также не работает. Есть ли разница между localhost
и 127.0.0.1
? Я всегда думал, что они были одним и тем же.
Вот 400 error
я получаю при использовании 127.0.0.1
:
И с localhost
все работает нормально.
Итак, мой вопрос: как я могу использовать localhost
в эмуляторе (или, как я могу исправить ошибку, которую я получаю при использовании 127.0.0.1
вместо localhost
)? Кроме того, я хотел бы знать разницу между localhost
и 127.0.0.1
, так как я всегда думал, что они были одинаковыми.
Заранее благодарим за ответы.
Изменить 1:
В qaru.site/info/202386/... они упоминают файл хоста в System32
Windows. Я открыл этот файл Notepad ++ (как Администратор) и раскомментировал строки с помощью 127.0.0.1 localhost
и ::1 localhost
. Но, к сожалению, это не устранило проблему, и я все еще не могу использовать 127.0.0.1
на своем компьютере в качестве замены для localhost
. Вероятно, потому что моя проблема - обратная (я могу получить доступ к localhost
, но не 127.0.0.1
, а не наоборот).
Изменить 2:
В qaru.site/info/63974/... он объяснил, что различия между localhost
и 127.0.0.1
:
-
127.0.0.1
будет легче распознаваться как IP на некоторых языках программирования. -
localhost
можно изменить на другой IP-адрес в хост файле компьютера (файл, указанный в моем Редактировании 1). - Существуют некоторые различия между IPv4 и IPv6.
Всем и всем, что я сейчас понимаю разницы, я просто не понимаю, почему мой локальный хост работает, но 127.0.0.1 не..
Изменить 3:
Нужно ли что-то делать с port
(я использую 54408
как port
)? Я открыл cmd
и выполнил следующие тесты:
-
ping localhost
: Я получаю ответ с 4 разаReply from ::1: time<1ms
. -
ping 127.0.0.1
: я получаю ответ с 4 разаReply from 127.0.0.1: bytes=32 time<1ms TIL=128
-
ping localhost:54408
: Я получаю сообщение об ошибкеPing request could not find localhost:54408. Please check the name and try again.
-
ping 127.0.0.1:54408
: Я получаю сообщение об ошибкеPing request could not find 127.0.0.1:54408. Please check the name and try again.
И, как я уже говорил раньше: 127.0.0.1:54408
в браузере дает ошибку, показанную на изображении выше. И localhost:54408
работает просто отлично.
По-прежнему никто не знает, как это исправить?
Изменить 4:
Скопируйте мой hosts-file
, расположенный в C:\Windows\System32\drivers\etc
.
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
::1 localhost
Последние две строки:
# 127.0.0.1 localhost
# ::1 localhost
Изменить 5/Полу-решение:
После предложения Jake C я пошел искать конфигурацию порта Visual Studio и нашел следующий сайт. В разделе "Чтобы указать порт для проекта веб-приложения, использующего сервер разработки Visual Studio", я выполнил инструкции и изменил параметр "Веб" в "Свойства проекта" на Use Visual Studio Development Server
с помощью моего 54408 port
.
Это был отличный шаг в правильном направлении, так как теперь работает страница 127.0.0.1:54408
. Однако, как только я попытаюсь войти в систему с Google OAuth
на веб-сайте С#, я получил следующую ошибку:
Один из моих бывших коллег, которые работали над веб-проектом С#, однажды сказал мне о qaru.site/info/25811/.... В ответе этого сообщения указано, что я должен добавить redirect-urls
(в моем случае 127.0.0.1
) в Google APIs Console
.
Прямо сейчас у меня нет доступа к этому Console
для моего проекта localhost
, так как он получен через SVN
. Я попрошу одного из моих наблюдателей получить разрешение на просмотр Google APIs Console
этого веб-проекта С# и, возможно, отредактировать redirect-urls
, чтобы включить 127.0.0.1
.
Как только у меня все получится, я соглашусь ответить Джейком С, поскольку его объяснение Http port configurations
действительно помогло мне найти ответ.
Изменить 6:
Хорошо, я использовал свою собственную консоль API Google и создал новый проект с новым идентификатором клиента. Я добавил теги http://localhost:54408/Account/ExternalLoginCallback
и http:127.0.0.1:54408/Account/ExternalLoginCallback
к URL-адресам перенаправления. Затем в моем веб-проекте С# App_Start/AuthConfig.cs
я изменил настройки клиента, чтобы использовать этот новый клиент.
Еще раз спасибо Jake C за ваше предложение изменить Http port configurations
в Visual Studio. Это сделало трюк для меня.