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?
Antworten
Zu viele Anzeigen?In der WebApiConfig.cs an das Ende der Datei Register Funktion:
// Remove the XML formatter
config.Formatters.Remove(config.Formatters.XmlFormatter);
Fuente .
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"));
}
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
.
Da die Frage Chrome-spezifisch ist, können Sie die Postman-Erweiterung mit dem Sie den Inhaltstyp der Anfrage festlegen können.
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!