Отправка запроса в ASP. NET Core API 2.1 с заголовком, отличным от символов ASCII. - PullRequest
1 голос
/ 04 апреля 2020

У меня очень простой ASP. NET Core API. Я отправляю заголовки этой службе, и она работает хорошо.

Но проблема в том, что когда я отправляю символ, такой как "á" в заголовке запроса, запрос завершается с 400: Bad request.

Я знаю, что это не проблема с клиентом - я тестировал тот же код на Java API, и он работал. Я также воспроизвел ту же проблему с почтальоном.

Как я могу сказать серверу принять UTF-8 в заголовках запроса?

[HttpPut("/api/Test")]
public IActionResult test([FromHeader(Name = "Word")] String word)
{
  return Ok("I accepted your request");
}

Screenshot of Postman

Редактировать:

Он работал с 3.1, поэтому теперь мы знаем, что это связано с 2.1.

1 Ответ

1 голос
/ 05 апреля 2020

Это ограничение. net core 2.1, и оно было исправлено. net core 2.2.

В этой проблеме github есть дополнительная информация об этом поведении. Настройка синтаксического анализа заголовка, чтобы разрешить несовместимые заголовки

Я вижу следующее решение, чтобы решить эту проблему:

  • перейти на. net ядро ​​2.2 или выше
  • URL-кодирование заголовка со стороны клиента
  • Использование обратного прокси-сервера для кодирования заголовка до того, как он достигнет вашего ASP. net приложение
...