Поделиться через


API Azure возвращает пустой ответ

Ссылаясь на статью в Azure Управление API серии устранения неполадок, это первый сценарий лаборатории. Убедитесь, что вы выполнили инструкции по настройке лаборатории, чтобы повторно создать проблему.

Исходная версия продукта: служба Управление API
Исходный номер базы знаний: 4464936

Симптомы

Пустой API состоит из двух операций GetHeaders и GetMyIp. GetMyIp возвращает значение значения заголовка X-FORWARDED-FOR и GetHeaders возвращает все значения заголовка запроса. GetMyIp возвращает ожидаемые выходные данные, но внезапно GetHeaders начал возвращать пустой ответ (без текста ответа).

Снимок экрана: пустой ответ.

Ожидаемые выходные данные API GetHeaders должны быть примерно следующим образом:

{
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Encoding": "gzip, deflate", 
    "Accept-Language": "en-US,en;q=0.5", 
    "Connection": "close", 
    "Cookie": "_gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1", 
    "Host": "eu.httpbin.org", 
    "Upgrade-Insecure-Requests": "1", 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
  }
}

Шаги по устранению неполадок

Для отладки таких проблем лучше всего собирать трассировку инспектора APIM для проверки обработки запросов внутри конвейера APIM.

  • При просмотре трассировки вы заметите, что политика пересылки запросов отсутствует.
  • Политика пересылки запросов перенаправляет входящий запрос в серверную службу, указанную в контексте запроса.
  • Удаление этой политики приводит к тому, что запрос не перенаправляется во внутреннюю службу и политики в разделе outbound вычисляются сразу после успешного завершения обработки политик в разделе inbound.
  • Таким образом, если проверить внутренний> <раздел операции GetHeaders в разделе "Пустой API", вы заметите, что политика пересылки запросов удаляется.
  • Добавьте политику перенаправленного запроса в раздел серверной части или добавьте <базовый /> элемент, чтобы она наследовала политику пересылки запросов от родительского уровня (т. е. от уровня API), которая должна устранить проблему.

Ознакомьтесь с политикой пересылки запросов , чтобы узнать больше об этом.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.