Wirklich mit etwas zu kämpfen Ich hoffe, dass die Leute hier helfen können. Ich schreibe eine RESTful API in Web API 2. Immer wenn ich eine Anfrage an diesen Service sende, wird die Antwort durchgehend mit einer Content-Type
von text/plain
gesendet. Offensichtlich ist das nicht gut, meine Antwort muss Content-Type
von application/json
sein. Ich habe ein paar Vorschläge aus Google ausprobiert, aber ich glaube nicht, dass ich das ganze Bild verstehe.Web API 2 Text/einfache Antworten
Gibt es etwas Besonderes, was ich tun muss, damit mein Webservice mit application/json
Inhalt antwortet? Beachten Sie, dass dies global für die gesamte App funktionieren soll. Daher bin ich nicht auf der Suche nach einer Möglichkeit, eine bestimmte Antwort zu ändern und ihren Inhaltstyp festzulegen. Ich möchte, dass dies ein Standardverhalten für den gesamten Webdienst ist: Wenn eine Anfrage enthält Ein Accept
Header für application/json
Ich möchte, dass mein Web-Service Content-Type
anstelle von text/plain
zurückgibt.
bearbeiten zu klären:
Meine Antwort enthält ein Objekt „response“ genannt, die in JSON serialisiert werden sollen und in dem Körper aufgenommen. Ich bin derzeit dabei meine Antwort wie folgt zusammen:
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, responseData);
return response;
responseData
ein POCO ist. Dieser wird korrekt als JSON serialisiert und in der Antwort zurückgegeben - der einzige fehlende Teil ist der Inhaltstyp, der falsch auf "text/plain" eingestellt ist. Ich könnte das bei jeder einzelnen Antwort manuell ändern, aber ich möchte dies auf globaler Ebene konfigurieren.
Gibt die fragliche API eine 'Zeichenfolge' mit JSON-Inhalt zurück, den Sie selbst erstellt haben? – Corey
Überprüfen Sie diese http://www.asp.net/web-api/overview/formats-and-model-binding/content-newtiation, http://msdn.microsoft.com/en-us/magazine/dn574797.aspx , http: //blogs.msdn.com/b/henrikn/archive/2012/04/22/asp-net-web-api-content-newegotiation-and-accept-charset.aspx, – malkam
@Corey derzeit die Antwort ist auf diese Weise erzeugt: 'HttpResponseMessage response = Request.CreateResponse (HttpStatusCode.OK, responseData);' und dann gebe ich einfach 'response' in meiner Aktion zurück. Der Inhalt von responseData wird gut in JSON serialisiert, aber der eigentliche Inhaltstyp-Header ist immer noch auf text/plain gesetzt :( –