Question

J'ai une question simple, pour vous, que je juste ne peux pas obtenir ma tête.

La situation est la suivante:

  • Nous créons et envoyer une demande à un service Web, en utilisant WSE 3.
  • Le service web est écrit en Java.

La plupart des choses sont très bien, mais je ne peux pas semblent avoir un impact sur l'ContentType soit du WebResuest ou WebResponse et qui cause des problèmes.

Le errormessage Je continue à obtenir est le suivant:

Le client a trouvé un type de contenu de réponse de 'application / XOP + xml, type = "text / xml; charset = utf-8"' mais attendu 'text / xml'. La demande a échoué avec le message d'erreur: ....

Dans les détails du message d'erreur, il a la réponse à notre appel du serveur et il vient par correctement. De toute évidence, ce n'est pas bon car il est à l'heure actuelle car il vient à travers une exception:.)

Alors, comment pourrais-je définir le type de contenu attendu pour la réponse?

Si je ne me trompe pas, la demande et la réponse à WSE 3.0 doit avoir la même ContentType. Donc, je pensais que je voudrais essayer de régler les request.Headers [HttpRequestHeader.ContentType] à celui attendu, mais pas de chance. (Aussi, je peux mettre dans un certain nombre de places contenttype du HttpWebRequest, mais aucun d'entre eux semblent faire l'affaire)

Était-ce utile?

La solution

Cela a été résolu heureusement, voici donc la solution pour référence future:

Notre client hérite de la classe WebServicesClientProtocol, dans lequel il y a une méthode appelée GetWebResponse (..). remplaçant simplement que la méthode et la modification du ContentType de la réponse semblait travailler pour nous.

    protected override WebResponse GetWebResponse(System.Net.WebRequest request)
    {
        WebResponse response = base.GetWebResponse(request);
        response.Headers[HttpResponseHeader.ContentType] = "text/xml";
        return response;
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top