2009-08-04 4 views
0

Ich habe einen REST WCF-Dienst und eine WCF-Client-Anwendung dafür.Wie erzwingen Sie Anforderungen, JSON zu sein? I.e. wie man XML-Körper blockiert?

Mein Betrieb hat die WebGet Attribut mit den folgenden Eigenschaften: Bodystyle = WebMessageBodyStyle.Bare, Responseformat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json

Allerdings, wenn ich die WCF-Client verwenden, wird der Antrag mit der Körper im XML-Format! Dies ist unerwünscht! Wie kann ich es ändern, um JSON zu verwenden?

Außerdem möchte ich verhindern, dass XML serverseitig akzeptiert wird - wie kann ich das erreichen? Ich hätte erwartet, RequestFormat zu spezifizieren, aber es scheint nur ein Vorschlag zu sein?

Edit: vergiss, ich bin ein Idiot. Ich schaute auf den falschen Betriebsvertrag - die richtigen waren in einer # Region, die ich nicht erweitert hatte ... der Client funktioniert gut. Der Server-Punkt ist immer noch gültig, aber im Zusammenhang mit dieser Frage ist es wahrscheinlich besser, diese Frage als geschlossen zu betrachten.

Antwort

1

Gern, ich bin ein Idiot. Ich schaute auf den falschen Operationsvertrag - die richtigen waren in einer # Region, die ich nicht erweitert hatte ... der Client funktioniert gut. Der Server-Punkt ist immer noch gültig, aber im Zusammenhang mit dieser Frage ist es wahrscheinlich besser, diese Frage als geschlossen zu betrachten.

2

Was meinen Sie damit, dass Sie [WebGet] angeben und eine Anfrage mit einer XML-Nachricht erhalten? Eine GET-Anfrage darf keinen Rumpf haben (Eingaben müssen Teil des URL-Pfades oder der Abfrage-Zeichenkette sein). Redest du über [WebInvoke]?

Zum Erzwingen der Anfrage Format auf der Server-Seite, jetzt, denke ich, WCF standardmäßig behandelt nur beide Formate unabhängig davon, was Sie auf dem Vertrag angegeben. Sie können es wahrscheinlich selbst erzwingen, indem Sie die Anforderungsnachricht content type ansehen und ablehnen, wenn es "text/xml" ist (oder irgendetwas anderes als application/json für diese Angelegenheit).

Verwandte Themen