2013-03-11 35 views
17

Tôi đang cố gắng tìm ra ASP.NET Web API mới.Đăng dữ liệu lên asp.net Web API

Cho đến nay tôi đã có thể tạo chữ ký phương pháp này và kết nối với nó chỉ tốt và nhận được một câu trả lời hợp lệ ...

[HttpPost] 
public HttpResponseMessage CreateAccount() 

tôi có thể gửi yêu cầu đến phương pháp này với cáy và đã xác minh rằng nó đang nhận được yêu cầu.

Tuy nhiên, khi tôi cố gắng chuyển dữ liệu là khi tôi gặp sự cố.

Điều đầu tiên tôi thử là ...

[HttpPost] 
public HttpResponseMessage CreateAccount([FromBody]string email, [FromBody]string password) 

Và tôi gõ

email: xyz, mật khẩu: abc

vào cơ thể của các yêu cầu trong cáy. Khi tôi làm điều này, tôi nhận được lỗi 500 nêu rõ

'Không thể liên kết nhiều thông số (' email 'và' mật khẩu ') với nội dung của yêu cầu'.

Tôi cũng đã cố gắng này như một phương pháp chữ ký ...

[HttpPost] 
public HttpResponseMessage CreateAccount([FromBody]UserAccountRequestData data) 

với UserAccountRequestData là một POCO đơn giản

public class UserAccountRequestData 
{ 
    public string Email { get; set; } 
    public string Password { get; set; } 
} 

Và tôi đặt

{Email: xyz, Mật khẩu : abc}

hoặc

dữ liệu: {Email: xyz, Mật khẩu: abc}

vào phần nội dung của yêu cầu. Trong cả hai trường hợp cố gắng điền POCO, tôi có thể tiếp cận phương thức trong khi gỡ lỗi, nhưng đối tượng dữ liệu luôn là null.

Tôi cần hiểu cách tạo các phương thức API chấp nhận cả POCO được nhập mạnh mẽ và các phương thức khác chấp nhận nhiều loại nguyên thủy như chuỗi và int.

Cảm ơn

Trả lời

17

Bạn cần phải thiết lập các tiêu đề để Content-Typeapplication/json và sau đó cung cấp JSON hợp lệ.

{"Email":"xyz","Password":"abc"} 
+2

+1 cho câu trả lời của Darrel Miller. Ngoài ra, bạn có thể tham khảo câu trả lời cho [Gửi đối tượng JSON tới API Web] (http://stackoverflow.com/questions/13870161/sending-json-object-to-web-api). Nó cung cấp cho bạn một mã mẫu cho câu hỏi của bạn. –

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