170 похожих чатов

Всем, привет. Есть класический netcore 3.1 webapi. Контроллер наследуется от

ControllerBase помечен аттрибутом ApiController.
метод Post, переменная помечена аттрибутом FromBody.
Нужно что бы его можно было дергать с использованием одного из двух ContentType
application/json - по умолчанию. работает сейчас.
text/plain - если сейчас использую то дает ошибку:
"title": "Unsupported Media Type",
"status": 415,
Гугл говорит:
1. Если ошибка "title": "Unsupported Media Type" при text/plain - то выбирай application/json. Я это и сам знаю и это мне не подходит.
2. Писать собственный форматер.
3. Сказать что text/plain не поддерживается, т.к. большие накладные расходы. Типа очень дорого по сравнению с application/json.

Кто нибудь сталкивался с такого рода проблемой? как подружить два формата без пункта 2?

13 ответов

7 просмотров

А ты указал, что данные должны приходить в json?

Dmitriy-Gavrikov Автор вопроса
Musa Musaev
screenshot

нет, сейчас попробую. Я чет думал что это надо указывать для application/json типа что бы знать чем десириализацию делать. Но т.к. у меня и так работает, а объекты гоняю через System.Text.Json (он пошустрее).

Dmitriy-Gavrikov Автор вопроса
Musa Musaev
screenshot

та же фигня. только ещё и application/json перестал работать. такое впечатление что ему теперь нужен xform, а не переменная с body

Dmitriy Gavrikov
та же фигня. только ещё и application/json переста...

Оставь как есть. Теперь перейдем к тому какой ты отправляешь запрос. Скинь запрос со всеми хедерами. И покажи как ты поставил атрибут в родительском классе BaseController

Dmitriy-Gavrikov Автор вопроса
Musa Musaev
Оставь как есть. Теперь перейдем к тому какой ты о...

$response = Invoke-WebRequest -Uri "..." -Method Post -Body $body -ContentType "application/json"

Dmitriy Gavrikov
$response = Invoke-WebRequest -Uri "..." -Method P...

ContentType относится к headers. Его нельзя в тело записывать

Dmitriy-Gavrikov Автор вопроса
Musa Musaev
ContentType относится к headers. Его нельзя в тело...

Понимаю что надо в Headers раньше работало до установки пакета

Dmitriy Gavrikov
Понимаю что надо в Headers раньше работало до уста...

Body же в виде json отправляешь? Ошибка на скрине говорит, что поля не прошли валидацию

Dmitriy-Gavrikov Автор вопроса
Musa Musaev
Body же в виде json отправляешь? Ошибка на скрине ...

если это завернуть не в raw application/json а в x-form то всё ок. либо убрать services.AddControllers().AddNewtonsoftJson(); Тогда тоже заработает.

Никак. Как ты вообще себе text/plain представляешь?

Dmitriy-Gavrikov Автор вопроса
Vabka
Никак. Как ты вообще себе text/plain представляешь...

Как поток байтов преобразованный к стрингу. Вот и я о том же. Т.е. получается свой обработчик вешать.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта