Wse 3.0 conjunto tipo de conteúdo
-
06-09-2019 - |
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)
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;
}