2009-03-17 22 views
5

Ho un servizio WCF con un metodo che assomiglia a questo (il valore null per il test con il debugger, mi interessa solo ottenere i dati in per ora):Come dovrebbe essere il corpo della richiesta?

[OperationContract] 
[WebInvoke(Method = "POST", UriTemplate = "fares", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)] 
public List<Fare> GetFares(Dictionary<int, int> itineraries, decimal? threshold, bool includeInternational) 
{ 
    return null; 
} 

Sto cercando di fare una richiesta in tal metodo usando Fiddler, ma non riesco a capire come dovrebbe essere il corpo di richiesta corretto. Potrei cambiare il parametro Dictionary in qualcos'altro se questo funziona meglio.

In intestazioni di richiesta mi passano:

User-Agent: Fiddler
Content-Type: application/json; charset = utf-8

Cosa devo inserire nel corpo?

risposta

7

Penso che questo sia quello che cerchi.

{ 
"itineraries" : [{"Key":1,"Value":2},{"Key":2,"Value":3}], 
"threshold" : 1.0, 
"includeInternational" : true 
} 

Il dizionario si serializza come matrice di valori chiave.

+0

L'ho impostato esplicitamente come richiesta POST in Fiddler, quindi i dati non vengono inviati come parte dell'URI. Il problema è che in Fiddler voglio digitare i dati manualmente e non ho idea di come debba apparire, quindi finisco con le eccezioni lato server. –

+0

Spiacente ho omesso di leggere la domanda e aggiornato la mia risposta. Penso che il json sopra sia quello che stai cercando. Se ottieni ancora un'eccezione, attiva system.diagnostics nella configurazione web se non lo hai già fatto. –

+0

Ecco fatto! Grazie. –

Problemi correlati