Die beste Methode, um "application / x-www-form-urlencoded" Post-Daten mit WCF zu unterstützen?

8

Ich erstelle einen WCF-Dienst, der auf einer W3C-Spezifikation basiert, die einen RESTful-Webservice-Endpunkt definiert, der "post / x-www-form-urlencoded" -Postdaten akzeptiert. WCF unterstützt diese Art der Nachrichtencodierung standardmäßig nicht und ich habe eine Reihe verschiedener Beispiele zum Erstellen eines Vertrags gefunden, der folgendermaßen aussieht:

%Vor%

Und dann innerhalb der Implementierung den postData Stream dekodieren mit der HttpUtility.ParseQueryString Methode.

Kennt jemand eine stärker typisierte Art der Unterstützung von "application / x-www-form-urlencoded" in WCF?

Ich möchte meinen Betriebsvertrag haben:

%Vor%     
Eric Schoonover 02.03.2009, 23:17
quelle

2 Antworten

7

Der beste Weg ist, Stream like Raw HTTP zu verwenden POST mit WCF oder was du sagst. Der Grund dafür ist, dass WCF alle physischen Layouts auf Kommunikationsebene aus dem Servicecode abstrahiert. Im Idealfall möchten Sie einen Dienst erstellen, der SOAP oder REST werden kann, indem Sie einfach den Schalter umlegen.

Um es nativ zu unterstützen, müssen Sie wahrscheinlich WebHttpBinding erweitern oder eine eigene Bindung erstellen und benutzerdefiniert implementieren Encoder . Dies ist symmetrisch zur Ausgabe, wie der verlinkte Post sagt. Sie müssen seine Arme verdrehen, damit WCF nicht-XML / JSON-Zeug ausgibt.

    
Eugene Yokota 04.03.2009, 07:48
quelle
2

Die WCF REST Contrib-Bibliothek aktiviert diese Funktionalität:

Ссылка

Es enthält einen POX-Formatierer und einen Form-URL-kodierten Formatierer und erlaubt Ihnen, leicht Ihren eigenen zu erstellen. Formatierer werden Mime-Typen zugeordnet und automatisch zum Serialisieren / Deserialisieren des Entitätshauptteils basierend auf dem Inhaltstyp und dem Akzeptieren von Headern ausgewählt.

    
hcoverlambda 20.06.2009 03:57
quelle

Tags und Links