sowohl der HTTP-Accept und Content-Type-Header "application/xml" in C#
Ich erstellte eine web-service (REST) in C#. Jetzt möchte ich, dass, wenn jemand nutzt es, sollte es wieder JSON oder XML als pro-Header. Ich fand eine sehr gute tutorial hier. Ich folgte ihm, aber ich weiß nicht, wo es heißt set both the HTTP Accept and Content-Type headers to "application/xml"
rufe ich es auf diese Weise http://localhost:38477/social/name
. Ich kann die Antwort auf jede Frage, falls meine Frage ist nicht ganz klar, Sie
Dank
Das ist mein code
[WebInvoke(UriTemplate = "{Name}", Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml)]
public MyclassData Get(string Name)
{
//Code to implement
return value;
}
- Sind Sie bereits mit der WebInvoke & WebGet-Attribut in das rest-service, diese beiden Attribute haben Eigenschaften, um RequestFormat & ResponseFormat
- Danke,@Mischa hat darauf hingewiesen, die gleiche Sache, aber es funktioniert nicht
- Bitte copy/paste den code hier ein, so können wir dir weiter helfen
- Ich habe aktualisiert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Welchem Rahmen sind Sie mit (der Aussieht wie der ältere WCf, Web Api), um Ihren build RESTful-service? Ich würde empfehlen, mit Microsofts neues MVC4 Web-API. Es ist wirklich beginnen zu Reifen und stark vereinfacht das erstellen von Rest-services. Es wird in der Zukunft unterstützt werden, wo der WCF Web API wird eingestellt.
Sie einfach wieder Ihre ModelClass als eine Rückkehr geben, und es wird automatisch serialisieren in XML-oder JSON-je nach Anforderungen-accept-headers. Sie vermeiden doppelten code zu schreiben und Ihr service wird Unterstützung für eine Breite Palette von Kunden.
Links
Erhalten Sie MVC4 Web-Api durch das herunterladen nur MVC4 2012 RC oder du kannst das ganze Visual Studio 2012 RC.
MVC 4: http://www.asp.net/mvc/mvc4
VS 2012: http://www.microsoft.com/visualstudio/11/en-us/downloads
Für die ursprünglichen wcf web api geben Sie diese ein Schuss. Untersuchen Sie den accept-header, und generieren Sie Ihre Antwort entsprechend seinem Wert.
Legen Sie den accept-header auf was auch immer client ist, der die Anforderung initiiert hat. Diese unterscheiden sich je nachdem, welche Art von client, den Sie verwenden, um die Anfrage zu senden, aber jeder http-client wird eine Methode zum hinzufügen von Kopfzeilen.
Zugriff auf die Antwort-Header, die Sie verwenden würden
Zusätzliche Ressourcen: http://dotnet.dzone.com/articles/wcf-rest-xml-json-or-both
Den Sie angegeben haben, die
RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml
in IhremWebInvoke
Attribut, das schränkt das format der beiden Request-und Response-Xml. Entfernen Sie die RequestFormat und ResponseFormat Eigenschaften und lassen Sie den Rahmen der Arbeit auf, es basiert auf Http-Header. Content-type - header gibt den request-body-Typ und Akzeptieren - header gibt die Antwort Körper-Typ.Edit:
Dies ist, wie würden Sie senden Sie Ihre Anfragen mit fiddler.
Könnten Sie Microsoft.Http und Microsoft.Http.Erweiterungen dlls, die im Lieferumfang der REST starter kit für das schreiben von client-side code. Unten ist ein Beispiel.
Können Sie erstellen, die zwei überladungen für Ihre Methode so: