WCF WebInvoke Méthode POST
J'ai un service wcf, et je veux tester l'affichage des données. Mais le paramètre de ma fonction ne reçoit jamais de valeurs.
[OperationContract]
[WebInvoke(UriTemplate = "TestPost", Method = "POST",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest)]
int Test(string value);
public int Test(string value) //Value stays null
{
return 0;
}
Le JSON demande que j'ai envoyer, construire à l'aide de Fiddler2
http://localhost:49633/Service1.svc/TestPost
User-Agent: Fiddler
Host: localhost:49633
Content-Length: 42
Content-type: application/json
{"value":{"name":"value","name1":"value"}}
Je veux le paramètre de contenir une chaîne JSON, donc, fondamentalement, je suis entrain de créer un JSON demande qui contient un objet JSON, parce que je veux désérialiser l'objet JSON plus tard dans un de mes objets personnalisés. Des idées pourquoi la valeur du paramètre reste nulle?
Grâce
- Le paramètre est une chaîne, donc sa valeur doit être une chaîne de caractères trop. Essayer de passer
{"value": "{\"name\": \"value\", \"name1\": \"value\"}"}
à la place. Mais je suis surpris que le service n'est pas de vous donner une erreur au lieu d'un argument null. - Pouvez-vous essayer en supprimant le BodyStyle à la valeur par défaut d'un WrappedRequest
Vous devez vous connecter pour publier un commentaire.
Je suis en utilisant la méthode ci-dessous pour poster la chaîne json pour le service définies ci-dessus et ça fonctionne pour moi:
Mon service:
Mon Client:
Mon appel sur le client pour le UseHttpWebApproach est comme ci-dessous:
Ci-dessous est mon Fiddler Demande: