2013-03-14 23 views
11

Tôi có thể gọi tính năng serivce web nhưng thuộc tính tên không bị ràng buộc.Cách soạn yêu cầu cho phương thức web REST trong fiddler

Fiddler yêu cầu

POST http://localhost:50399/api/custservice/ HTTP/1.1 
User-Agent: Fiddler 
Host: localhost: 50399 
Content-Length: 28 
{ "request": { "name":"test"}} 

POST WebMethod

public string Any(CustomerRequest request) 
{ 
    //return details 
} 

CustomerRequest.cs

public class CustomerRequest 
{ 
    public string name {get;set;} 
} 

Trả lời

30

Trước hết bạn cần phải thêm Content-Type 'application/json' để yêu cầu :

POST http://localhost:50399/api/custservice/ HTTP/1.1 
User-Agent: Fiddler 
Host: localhost: 50399 
Content-Type: application/json 

Sau đó thay đổi dữ liệu POST của bạn để:

{"name":"test"} 

Bạn sẽ có thể truy cập vào dữ liệu sử dụng:

public string Any(CustomerRequest request) 
{ 
    return request.name 
} 

Ngoài ra sử dụng cấu trúc POST dữ liệu hiện tại của bạn tạo ra một lớp mới:

public class RequestWrapper 
{ 
    public CustomerRequest request { get; set; } 
} 

và thay đổi phương thức Hành động của bạn thành:

public string Any(RequestWrapper wrapper) 
{ 
    return wrapper.request.name; 
} 
+0

Cảm ơn nó hoạt động bằng cách gọi trực tiếp {"name": "test"}. – Sunny

+0

Tôi có thể biết sử dụng RequestWrapper, nếu tôi có thể liên kết bằng cách chỉ truyền các tham số bình thường. – Sunny

+0

Nếu bạn chỉ gửi {"name": "test"} thì không cần đến RequestWrapper. –

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