Der beste Weg, „application / x-www-form-urlencoded“ post-Daten mit WCF zu unterstützen?

StackOverflow https://stackoverflow.com/questions/604463

Frage

Ich baue einen WCF-Dienst basierte auf einer W3C-Spezifikation, die einen RESTful Web-Service-Endpunkt definiert, die "application / x-www-form-urlencoded" post-Daten akzeptiert. WCF nicht diese Art von Nachrichtencodierung unterstützen standardmäßig, und ich habe eine Reihe von verschiedenen Beispiele für das Erstellen eines Vertrages gefunden, die wie folgt aussieht:

XElement Query_Post(Stream postData);

Und dann innerhalb der Implementierung Decodierung des postData Stromes der HttpUtility.ParseQueryString Methode.

Kennt jemand eine stark typisierte Art und Weise zu unterstützen "application / x-www-form-urlencoded" in WCF?

Ich würde meinen Betrieb Vertrag gerne sein:

XElement Query_Post(string query, string [] params);
War es hilfreich?

Lösung

Der beste Weg ist Stream zu verwenden wie Raw HTTP POST mit WCF oder was Sie sagen. Der Grund ist, weil WCF abstrahiert alle Kommunikationsebene physisches Layout Sachen aus dem Service-Code. Im Idealfall würden wollen, können Sie einen Service in Anspruch nehmen, die in SOAP oder REST nur durch den Schalter umlegen.

drehen konnten

es nativ zu unterstützen, haben Sie wahrscheinlich WebHttpBinding zu verlängern oder Ihre eigene Bindung zu machen und umzusetzen

Andere Tipps

Die WCF REST Contrib Bibliothek ermöglicht diese Funktionalität:

https://github.com/mikeobrien/WcfRestContrib

Es enthält eine POX-Formatierer und Form url codiert Formatierer und ermöglicht Ihnen die einfache eigene zu erstellen. Formatter zu MIME-Typen abgebildet werden und automatisch die Entitätskörpers serialisiert / deserialisiert auf den Inhaltstyp und akzeptieren Header basierend ausgewählt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top