2009-03-17 26 views
5

Tengo un servicio de WCF con un método que se parece a esto (devuelve un valor nulo para las pruebas con el depurador, que sólo se preocupan por la obtención de datos en por ahora):¿Cómo debería ser el cuerpo de la solicitud?

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

que estoy tratando de hacer una solicitud a tal método usando Fiddler, pero no puedo entender qué debería ser el cuerpo de solicitud correcto. Podría cambiar el parámetro del diccionario a otra cosa si eso funciona mejor.

en la solicitud de cabeceras que pasan:

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

¿Qué debo poner en el cuerpo?

Respuesta

7

Creo que esto es lo que buscas.

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

El diccionario se serializa como una matriz de valores clave.

+0

Establecí esto explícitamente como solicitud POST en Fiddler, por lo que los datos no se envían como parte del URI. El problema es que en Fiddler quiero escribir los datos manualmente y no tengo idea de cómo debe verse, así que termino con las excepciones del lado del servidor. –

+0

Disculpa, no leí la pregunta y actualicé mi respuesta. Creo que el JSON anterior es lo que buscas. Si aún recibe una excepción, active system.diagnostics en la configuración web si aún no lo ha hecho. –

+0

¡Eso es todo! Gracias. –

Cuestiones relacionadas