2013-03-14 5 views
11

Jestem w stanie zadzwonić do serwisu internetowego, ale właściwość name nie jest wiążąca.Jak skomponować żądanie dla metody REST web w skrzypce

Skrzypek prośba

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;} 
} 

Odpowiedz

30

Przede wszystkim trzeba dodać Content-Type 'application/json' na żądanie :

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

Następnie zmień swoje dane pocztą na adres:

{"name":"test"} 

Będziesz mógł uzyskać dostęp do danych za pomocą:

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

Alternatywnie przy użyciu istniejącej struktury danych POST utworzyć nową klasę:

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

i zmień metodę działania na:

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

Dzięki temu działa bezpośrednio przez wywołanie {"name": "test"}. – Sunny

+0

Czy mogę wiedzieć, że używam RequestWrapper, jeśli jestem w stanie związać się zwykłymi parametrami. – Sunny

+0

Jeśli właśnie wysyłasz {"name": "test"}, to nie ma potrzeby, aby RequestWrapper. –

Powiązane problemy