1220 Stimmen

Wie bringe ich ASP.NET Web API dazu, JSON anstelle von XML mit Chrome zurückzugeben?

Die Verwendung der neueren ASP.NET Web API , in Chrom Ich sehe XML - wie kann ich es in eine Anfrage ändern? JSON damit ich sie im Browser anzeigen kann? Ich glaube, es ist nur ein Teil der Anfrage-Header, bin ich damit richtig?

121voto

In der WebApiConfig.cs an das Ende der Datei Register Funktion:

// Remove the XML formatter
config.Formatters.Remove(config.Formatters.XmlFormatter);

Fuente .

101voto

Diganta Kumar Punkte 3569

In der Global.asax Ich verwende den unten stehenden Code. Mein URI zum Abrufen von JSON ist http://www.digantakumar.com/api/values?json=true

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();

    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);

    GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new  QueryStringMapping("json", "true", "application/json"));
}

54voto

Aaron Daniels Punkte 9389

Werfen Sie einen Blick auf die Inhaltsaushandlung in der WebAPI. Diese ( Teil 1 & Teil 2 ) wunderbar detaillierte und gründliche Blogbeiträge erklären, wie es funktioniert.

Kurz gesagt, Sie haben recht, und müssen nur die Accept o Content-Type Kopfzeilen der Anfrage. Da Ihre Aktion nicht für die Rückgabe eines bestimmten Formats kodiert ist, können Sie die Accept: application/json .

45voto

Chris S Punkte 63542

Da die Frage Chrome-spezifisch ist, können Sie die Postman-Erweiterung mit dem Sie den Inhaltstyp der Anfrage festlegen können.

Postman

37voto

jayson.centeno Punkte 825

Dieser Code macht json zu meinem Standard und erlaubt mir, auch das XML-Format zu verwenden. Ich füge einfach die xml=true .

GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add(new QueryStringMapping("xml", "true", "application/xml"));
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));

Vielen Dank an alle!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X