2012-09-28 13 views
8

Jestem nowy w interfejsie WWW i potrzebuję utworzyć serwer dla klienta. Nie mam kontroli nad klientem - nic nie mogę zmienić.Używanie programu C# web api z alternatywnym typem zawartości

Klient wysyła żądanie json w zamkniętym html w treści POST. Typ zawartości może się jednak różnić. Co muszę zrobić, aby mój ApiController mógł przetwarzać różne typy zawartości?

Odpowiedz

8

Pod maską, Web Api obsługuje mechanizm Content Negotiation, aby automatycznie wybrać poprawny formater w oparciu o nagłówek Content-Type w żądaniu HTTP.

Domyślnie negocjacja treści obsługuje trzy formatery: json, xml i form-urlencoded data. Jeśli nie zostanie znaleziony formater, klient otrzyma błąd HTTP 406 (niedozwolony).

Zobacz więcej:

https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/content-negotiation

Jeśli potrzebujesz, aby umożliwić obsługę Web API inny Content-Type, możesz napisać swój własny formatowania:

https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/media-formatters

+1

Dzięki. Skończyło się za pomocą tego: publicznego HttpResponseMessage post (HttpRequestMessage R) { } To pozwoliło mi uzyskać dostęp do surowca pochodzącego xml, w którym mógłbym następnie zanalizować. Jestem pewien, że to nie jest "właściwa" droga - ale to działa dla mnie – user789235

Powiązane problemy