Ich habe einen RESTful-Web-Service mit der MVC4-Web-API geschrieben. Einer der Clients, die meinen Webdienst aufrufen, stellt einen XML-Body, aber eine JSON-Antwort.Fehlende Header-Werte hinzufügen
Ich habe gelernt, dass der Client nicht den Header-Wert von Content-Typ: application/xml oder Accept: application/xml.
Der Kunde, der meinen Webdienst anruft, ist eines der größten Unternehmen der Welt und weigert sich, die erforderlichen Headerwerte hinzuzufügen.
Also meine Frage ist, wie füge ich die fehlenden Header-Werte, die der Client nicht sendet, so dass mein Web-Service eine Antwort in XML zurückgeben kann?
Oder wie bekomme ich meinen Webservice zur Antwort in XML mit fehlenden?
Ich habe versucht, das Folgende zu Global.asax.cs hinzuzufügen;
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (HttpContext.Current.Request.HttpMethod == "POST"
&& HttpContext.Current.Request.CurrentExecutionFilePath.Contains("OrderInformation"))
{
HttpContext.Current.Request.Headers.Add("content-type", "application/xml");
HttpContext.Current.Request.Headers.Add("Accept", "application/xml");
}
}
Aber eine Ausnahme ist zur Laufzeit werfen.
TIA
Matt
Anstatt die Header hinzufügen, können Sie nicht einfach den Standard-Rückgabetyp XML? Oder würde das vielleicht andere Kunden brechen? – GPW
verwandt, aber das gegenteilige Problem, also nicht streng ein Duplikat ... https://StackOverflow.com/Questions/36492004/webapi-mvc-4-set-default-response-type (EDIT: Ich denke, es kommt auf die Reihenfolge, in der Sie die Formatierer in der Konfiguration angeben, wie unter dem Link? Nicht getestet, könnte falsch sein) – GPW
Ich bin nicht sicher, wie in MVC zu tun, aber Sie sollten in der Lage sein, einige Klassen zu überschreiben und eingehende Anfrage Header wie erforderlich zu ändern. Der folgende Link bezieht sich auf WCF, sollte aber mit MVC möglich sein. https://social.msdn.microsoft.com/Forums/vstudio/en-US/3b9a93a1-4406-416e-b328-1e0b626e563d/how-to-intercept- wcf-row-messages? forum = wcf – Softec