Pergunta

Eu tenho uma pergunta simples, para você, que eu simplesmente não consigo obter minha cabeça em torno.

A situação é a seguinte:

  • Nós criar e enviar uma solicitação para um serviço web, usando WSE 3.
  • O serviço web é escrito em Java.

A maioria das coisas são muito bem, mas não posso parecem ter um impacto sobre o ContentType, quer do WebResuest ou WebResponse e que está causando alguns problemas.

O errormessage eu continuo recebendo é o seguinte:

cliente encontrou um tipo de conteúdo de resposta de 'application / xop + xml; type = "text / xml; charset = utf-8"', mas esperado 'text / xml'. A solicitação falhou com a mensagem de erro: ....

Nos detalhes da mensagem de erro tem a resposta ao nosso chamado a partir do servidor e está vindo através corretamente. Obviamente que não é bom, pois é no momento como ele está vindo através de uma exceção:.)

Então, como eu poderia definir o tipo de conteúdo esperado para a resposta?

Se eu estiver correto, a solicitação ea resposta no WSE 3.0 tem de ter o mesmo ContentType. Então eu pensei que eu iria tentar definir os Request.Headers [HttpRequestHeader.ContentType] ao esperado, mas sem sorte. (Também, eu posso definir o tipo de conteúdo de HttpWebRequest em alguns lugares, mas nenhum deles parece fazer o truque)

Foi útil?

Solução

Este foi resolvido, felizmente, então aqui está a solução para referência futura:

Nossos herda cliente da classe WebServicesClientProtocol, em que há um método chamado GetWebResponse (..). Simplesmente substituir esse método e mudando o ContentType da resposta parecia estar a trabalhar para nós.

    protected override WebResponse GetWebResponse(System.Net.WebRequest request)
    {
        WebResponse response = base.GetWebResponse(request);
        response.Headers[HttpResponseHeader.ContentType] = "text/xml";
        return response;
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top