2012-09-28 24 views
8

Tôi mới sử dụng api trên web và tôi cần tạo máy chủ cho ứng dụng khách. Tôi không có quyền kiểm soát khách hàng - không thể thay đổi điều gì.Sử dụng api C# web với nội dung thay thế kiểu

Ứng dụng khách gửi trong yêu cầu JSON đóng gói html trong nội dung POST. Tuy nhiên, loại nội dung có thể khác nhau. Tôi cần làm gì để cho phép ApiController xử lý các loại nội dung khác nhau?

Trả lời

8

Dưới mui xe, Web Api hỗ trợ Đàm phán nội dung cơ chế để tự động chọn trình định dạng chính xác dựa trên tiêu đề Content-Type trong yêu cầu HTTP.

Bằng cách thương lượng nội dung mặc định hỗ trợ ba trình định dạng: json, xmlform-urlencoded data. Nếu không tìm thấy trình định dạng, máy khách sẽ nhận được lỗi HTTP 406 (Không chấp nhận được).

Xem thêm:

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

Nếu bạn cần phải cho phép hỗ trợ Web Api Content-Type khác, bạn có thể viết định dạng tùy chỉnh của riêng bạn:

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

+1

Cảm ơn. Tôi đã kết thúc bằng cách sử dụng này: công HttpResponseMessage Post (HttpRequestMessage r) { } này cho phép tôi được tiếp cận với xml liệu sắp tới, trong đó tôi sau đó có thể phân tích. Tôi chắc chắn nó không phải là "đúng" cách - nhưng nó làm việc cho tôi – user789235

Các vấn đề liên quan