Frage

Ich habe eine einfache Frage, für dich, dass ich einfach nicht den Kopf scheinen, herum zu erhalten.

Die Situation ist folgende:

  • Wir erstellen und eine Anforderung an einen Web-Service senden, WSE 3 verwendet wird.
  • Der Web-Dienst ist in Java geschrieben.

Die meisten Dinge sind in Ordnung, aber ich kann nicht einen Einfluss auf die Content entweder der WebResuest oder WebResponse zu haben scheinen und dass verursacht einige Probleme.

Die Fehlernachricht Ich erhalte ist die folgende:

gefunden Client eine Antwort Inhaltstyp 'application / xop + xml; type = "text / xml; charset = utf-8"', aber erwartet 'text / xml'. Fehler bei der Anforderung mit der Fehlermeldung: ....

In den Details der Fehlermeldung hat es die Reaktion auf unseren Aufruf vom Server und es kommt durch richtig. Natürlich ist es nicht gut, wie es im Moment ist, wie es durch eine Ausnahme kommt.)

So, wie könnte ich den erwarteten Inhaltstyp für die Antwort gesetzt?

Wenn ich richtig bin, die Anfrage und die Antwort in WSE 3.0 haben die gleiche Content haben. Also dachte ich, ich würde versuchen, die request.Headers auf [HttpRequestHeader.ContentType] auf den erwartet man, aber ohne Glück. (Auch, kann ich die HttpWebRequest des content in ganz wenigen Stellen gesetzt, aber keiner von ihnen scheint den Trick zu tun)

War es hilfreich?

Lösung

Dies wurde zum Glück gelöst, also hier ist die Lösung für die Zukunft:

Unser Kunde erbt von der WebServicesClientProtocol Klasse, in der ein Verfahren gibt es genannt GetWebResponse (..). Einfach diese Methode überschreiben und die Content Ändern der Antwort für uns zu arbeiten, schien.

    protected override WebResponse GetWebResponse(System.Net.WebRequest request)
    {
        WebResponse response = base.GetWebResponse(request);
        response.Headers[HttpResponseHeader.ContentType] = "text/xml";
        return response;
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top