Мне нужно опубликовать одну пару ключ-значение из приложения Swift iOS с использованием данных формы. Пример «Почтальон», предоставленный внутренним разработчиком, работает:
На вкладке «Тело почтальона» отображается «SelectedCreditCard» в «KEY» и «34» в «VALUE»
Метод POST .
На вкладке Заголовки почтальона отображается «Тип контента» в разделе KEY и «application / x- www-form-urlencoded» в поле ЗНАЧЕНИЕ, а также дополнительный заголовок токена авторизации.
При запуске из Почтальона I получить статус 400 с телом JSON, содержащим предупреждение «Недействительная кредитная карта». Это ожидаемый результат.
При реализации этого в Swift я получил 415 (носитель не поддерживается). Я вставил код curl, сгенерированный Postman, в командную строку Ma c, просто чтобы посмотреть, как он выглядит, и, к своему удивлению, получил тот же результат, что и в iOS App.
Код curl :
curl --location --request POST 'https://stg.xxx.com/api/xxx/SavePaymentInfo' \
--header 'Authorization: Bearer xxxxxxxxxx' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--form 'SelectedCreditCard=34'
Результат скручивания:
{"$type":"Microsoft.AspNetCore.Mvc.ProblemDetails,
Microsoft.AspNetCore.Mvc.Core",
"type":"https://tools.ietf.org/html/rfc7231#section-6.5.13",
"title":"Unsupported Media Type",
"status":415,
"traceId":"0HLTFOL7EGBUA:00000007"}%
Я также попробовал сгенерированный код Objective C, предоставленный Почтальоном, и сгенерированный код Swift, и во всех случаях результат 415. Единственный случай, когда я получаю правильный результат (400 с предупреждением о недействительной карточке), - это когда я запускаю почту непосредственно из самого Почтальона. Интересно, что вызывает этот разрыв.