Localhost WEB Api всегда возвращает 400 Bad Request - PullRequest
0 голосов
/ 16 апреля 2020

Я использую настоящее Android устройство. Когда я пытаюсь позвонить в WEB Api, я получаю 400 Bad Request. API находится на локальном хосте (IIS Express). Но если вы вызываете Api из приложения windows, то все в порядке.

Строка API приложения Windown - https://localhost: 44399 / api / v1 / семейства - возвращает 200 Ok

Android строка API приложения - https://192.168.0.102: 44399 / api / v1 / семейства - возврат 400 Плохой запрос

Мой ipconfig: адаптер беспроводной локальной сети Wi-Fi:

Спецификация соединения c DNS-суффикс. :

Локальный IPv6-адрес. , , , , : fe80 :: 4dbf: c945: 4125: 74c8% 5

IPv4-адрес. , , , , , , , , , , : 192.168.0.102

Су bnet Маска. , , , , , , , , , , : 255.255.255.0

Шлюз по умолчанию. , , , , , , , , : 192.168.0.1

Я пробовал разные способы: я подключился к локальной сети, к моей сети Wi-Fi, ничего не помогло.

Ответы [ 3 ]

0 голосов
/ 16 апреля 2020

Запросы будут перенаправлены на «192.168.0.102», но по умолчанию он не работает для IIS Express.

Пожалуйста, выполните следующие шаги.

Перед этим замените API вашего приложения https://localhost:44399/api/v1/families адрес https://192.168.0.102:44399/api/v1/families.

  1. Загрузите Jexus Manager и установите.

  2. Откройте Jexus Manager по привилегии администратора.

  3. Щелкните здесь и настройте IIS (проверьте с помощью версии VS) - Управление IIS Express Серверы .

  4. Go для редактирования сайта -> привязки

Jexux manager

Добавьте новую привязку с правильными значениями, и имя хоста должно быть локальным IP-адресом вашего хост-компьютера. В вашем случае 192.168.0.102.

  • после добавления новой привязки он отображается как (здесь мой локальный IP-адрес - 192.168.1.101. После привязки ваш - это должен быть IP-адрес вашего хост-компьютера.) enter image description here

Запустите сервер.

0 голосов
/ 16 апреля 2020

@ MRSessions абсолютно верно. мы достигаем сервера приложений. Но есть проблема в формате запроса. Возможно, заголовок запроса. Пожалуйста, попробуйте использовать разные заголовки, такие как Accept: application / json, тип контента: application / json et c.

. Вы можете легко сопоставить то, что отправляется во время нажатия на него в браузере или почтальоне. и android через Logcat. Вот как:

Попробуйте использовать почтальон для тестирования API и отметьте все заголовки. Теперь вы будете знать все подробности о запросе.

Затем используйте эту библиотеку Http Logging Interceptor для регистрации всех отправляемых запросов. Но в этом случае вам нужно использовать OkHttpClient или Retrofit.

Я также много раз сталкивался с подобными проблемами с ошибочными запросами. Я читаю их после сравнения формата запроса почтальона и android формата запроса. Http Logging Interceptor отобразит все и вся о формате запроса в Logcat. Вы также можете прочитать их в журналах доступа вашего сервера.

В этом android видеокурсе используется Laravel и аналогично android, который я предлагаю. Пожалуйста, попробуйте, это может помочь вам.

https://www.youtube.com/watch?v=StFvAYmg04o&list=PLEubh3Rmu4tn8xtkVcWnWOjQcGG4aeRK-

0 голосов
/ 16 апреля 2020

Пока это звучит так, как будто это правильное поведение. Вы получаете 400 неверных запросов, что означает, что вы достигаете сервера, но не правильно отправляете запрос.

Возможно, вы неправильно отправляете тело или параметры или не хватает некоторых.

Попробуйте взглянуть на то, что ваше Android устройство пытается отправить на сервер, и вы, скорее всего, найдете свою проблему.

...