Метод привязки, когда предоставляется пользовательский заголовок - PullRequest
0 голосов
/ 06 апреля 2019

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

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

[HttpPost]
        [ResponseType(typeof(ResultModel))]
        public HttpResponseMessage Add([FromBody] InputModel oModel)
        {
            ResultModel oResult;

// Process oModel

// Check if my "X-Custom-Parameter exists
if(Request.Headers.GetValues("X-Custom-Parameter").FirstOrDefault() != null){
 // Do something with custom parameter and oModel
}

            return Request.CreateResponse(HttpStatusCode.OK, oResult);
        }

При звонке из Почтальона я получаю следующее сообщение:

Error: Header name must be a valid HTTP Token ["X‐Custom-Parameter"]

и заголовок:

POST /myapi/path
X‐Custom-Parameter: 123Kartofen
Content-Type: application/json
cache-control: no-cache
Postman-Token: 6d1da8b9-9871-439e-8e5d-79c22978b4cd

Хотя мне не хватает некоторых настроек. Я часами занимаюсь веб-серфингом и читаю об обработчиках и фильтрах, но не думаю, что это то, что мне нужно.

Ответы [ 2 ]

0 голосов
/ 06 апреля 2019

Проверьте свой почтальон, отправляете ли вы заголовок с дефисом или подчеркиванием. X_ или X-?

0 голосов
/ 06 апреля 2019

Переименуйте ваш пользовательский заголовок в Пользовательский параметр вместо X ‑ Пользовательский параметр . Потому что префикс "X-" в прикладных протоколах устарел

https://tools.ietf.org/search/rfc6648

...