2013-03-14 7 views
11

Ich bin in der Lage, Web-Service zu nennen, aber Name Eigenschaft ist nicht verbindlich.Wie schreibe ich Anfrage für REST-Web-Methode in Fiddler

Fiddler Anfrage

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

POST Webmethode

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

CustomerRequest.cs

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

Antwort

30

Zu allererst Sie Content-Type 'application/json' auf die Anfrage hinzufügen müssen :

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

dann Ihre POST-Daten ändern:

{"name":"test"} 

können Sie auf die Daten zugreifen mit:

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

Alternativ Ihre vorhandene POST Datenstruktur erstellen Sie eine neue Klasse mit:

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

und ändern Sie Ihre Aktionsmethode zu:

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

Dank es funktioniert, indem Sie direkt {"name": "test"} aufrufen. – Sunny

+0

Kann ich Verwendung von RequestWrapper wissen, wenn ich in der Lage bin zu binden, indem einfach Parameter normal übergeben. – Sunny

+0

Wenn Sie nur {"name": "test"} senden, ist der RequestWrapper nicht erforderlich. –

Verwandte Themen