2013-03-14 5 views
11

Sono in grado di chiamare Web Serivce ma la proprietà del nome non è vincolante.Come comporre la richiesta per il metodo web REST in fiddler

Fiddler richiesta

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

risposta

30

Prima di tutto è necessario aggiungere Content-Type 'application/json' alla richiesta :

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

Quindi modificare i tuoi dati POST a:

{"name":"test"} 

Sarete in grado di accedere ai dati utilizzando:

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

alternativa utilizzando la struttura di dati POST esistente creare una nuova classe:

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

e modificare il metodo di azione su:

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

Grazie funziona chiamando direttamente {"nome": "test"}. – Sunny

+0

Posso conoscere l'uso di RequestWrapper, se sono in grado di eseguire il binding passando semplicemente i parametri normalmente. – Sunny

+0

Se si sta solo inviando {"nome": "test"}, non è necessario il RequestWrapper. –

Problemi correlati