CONSUMO DE URL COM HEADER
eu tenho uma url e preciso passar um parametro no header do endereco mais nao consegui achar nada sobre isto isto preciso mandar isto no cabecario
a url é esta
http://homolog.huma.com.br/ws2/services/FornecedorServices?wsdl
<soapenv:Header>
<UsernameToken xmlns="http://www.huma.com.br/ws2">
<Cnpj>XXXXXXX</Cnpj>
<username>XXXX</username>
<password>XXXXX</password>
</UsernameToken>
</soapenv:Header>
gostaria de indição de como faco isto
a url é esta
http://homolog.huma.com.br/ws2/services/FornecedorServices?wsdl
<soapenv:Header>
<UsernameToken xmlns="http://www.huma.com.br/ws2">
<Cnpj>XXXXXXX</Cnpj>
<username>XXXX</username>
<password>XXXXX</password>
</UsernameToken>
</soapenv:Header>
gostaria de indição de como faco isto
bom dia jaba tentei fazer mais sem sucesso , vou procurando ainda se alguem tiver alguma ideia , estou a disposição
Não encontrei esses parâmetros no XSD, que aliás é o que voce deveria usar. Tem certeza que não são parâmetros do header HTTP?
kerplunk eu estou passando a doc qe eles me enviou
Autenticação
Para serem acessados, todos os métodos precisam da autenticação do usuário.
Deverá ser enviado no cabeçalho do envelope, o CNPJ da empresa, usuário e
senha registrados no sistema compraseletronicas.com. Segue abaixo trecho de
xml no formato que deverá ser enviado.
<soapenv:Header>
<UsernameToken xmlns="http://www.huma.com.br/ws2">
<Cnpj>12345678901234</Cnpj>
<username>email@hostname.com</username>
<password>123456</password>
</UsernameToken>
</soapenv:Header>
Autenticação
Para serem acessados, todos os métodos precisam da autenticação do usuário.
Deverá ser enviado no cabeçalho do envelope, o CNPJ da empresa, usuário e
senha registrados no sistema compraseletronicas.com. Segue abaixo trecho de
xml no formato que deverá ser enviado.
<soapenv:Header>
<UsernameToken xmlns="http://www.huma.com.br/ws2">
<Cnpj>12345678901234</Cnpj>
<username>email@hostname.com</username>
<password>123456</password>
</UsernameToken>
</soapenv:Header>
E da algum erro, alguma mensagem?
estou usando o exemplo
var url = "http://homolog.huma.com.br/ws2/services/FornecedorServices?wsdl";
var parameterCnpj = "ccxcxcxcx";
var client = new FornecedorWSServiceClient();
client.Endpoint.Address = new EndpointAddress(url);
client.Open();
// Verificar autenticação de header com o seguinte modelo:
var autenticar = new autenticar() { Cnpj = "xxxxx", username = "xxxxx", password = "rrrrr" };
var autenticarHeader = MessageHeader.CreateHeader("autenticar", string.Empty, autenticar);
OperationContext.Current.IncomingMessageHeaders.Add(autenticarHeader);
var resultService = client.consultarNovasCotacoes(new filtroCotacaoBean()
{
cnpjFornecedor = parameterCnpj
});
e recebo este erro
O tipo de conteúdo text/xml;charset=ISO-8859-1 da mensagem de resposta não corresponde ao tipo de conteúdo da associação (text/xml; charset=utf-8). Se estiver usando um codificador personalizado, verifique se o método IsContentTypeSupported está implementado corretamente. Os primeiros 288 bytes da resposta foram: "<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope"><faultcode>S:Server</faultcode><faultstring>Autentica????o Obrigat??ria</faultstring></S:Fault></S:Body></S:Envelope>".
var url = "http://homolog.huma.com.br/ws2/services/FornecedorServices?wsdl";
var parameterCnpj = "ccxcxcxcx";
var client = new FornecedorWSServiceClient();
client.Endpoint.Address = new EndpointAddress(url);
client.Open();
// Verificar autenticação de header com o seguinte modelo:
var autenticar = new autenticar() { Cnpj = "xxxxx", username = "xxxxx", password = "rrrrr" };
var autenticarHeader = MessageHeader.CreateHeader("autenticar", string.Empty, autenticar);
OperationContext.Current.IncomingMessageHeaders.Add(autenticarHeader);
var resultService = client.consultarNovasCotacoes(new filtroCotacaoBean()
{
cnpjFornecedor = parameterCnpj
});
e recebo este erro
O tipo de conteúdo text/xml;charset=ISO-8859-1 da mensagem de resposta não corresponde ao tipo de conteúdo da associação (text/xml; charset=utf-8). Se estiver usando um codificador personalizado, verifique se o método IsContentTypeSupported está implementado corretamente. Os primeiros 288 bytes da resposta foram: "<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope"><faultcode>S:Server</faultcode><faultstring>Autentica????o Obrigat??ria</faultstring></S:Fault></S:Body></S:Envelope>".
Tá dando incompatibilidade no formato. Veja se assim funciona:
var url = "http://homolog.huma.com.br/ws2/services/FornecedorServices?wsdl";
var parameterCnpj = "ccxcxcxcx";
var client = new FornecedorWSServiceClient();
client.RequestEncoding = Encoding.GetEncoding("ISO-8859-1");
client.Endpoint.Address = new EndpointAddress(url);
client.Open();
// Verificar autenticação de header com o seguinte modelo:
var autenticar = new autenticar() { Cnpj = "xxxxx", username = "xxxxx", password = "rrrrr" };
var autenticarHeader = MessageHeader.CreateHeader("autenticar", string.Empty, autenticar);
OperationContext.Current.IncomingMessageHeaders.Add(autenticarHeader);
var resultService = client.consultarNovasCotacoes(new filtroCotacaoBean()
{
cnpjFornecedor = parameterCnpj
});
esta opção client.RequestEncoding = Encoding.GetEncoding("ISO-8859-1"); ele nao acha tenho que importar ela de algum lugar ?
e quem o nosso amigo aqui no forum falou cada um uso um padrao e nao sao o mesmo eu entendo mais poderia ter uma padrao para isto ne
e quem o nosso amigo aqui no forum falou cada um uso um padrao e nao sao o mesmo eu entendo mais poderia ter uma padrao para isto ne
Citação::
esta opção client.RequestEncoding = Encoding.GetEncoding("ISO-8859-1"); ele nao acha tenho que importar ela de algum lugar ?
e quem o nosso amigo aqui no forum falou cada um uso um padrao e nao sao o mesmo eu entendo mais poderia ter uma padrao para isto ne
O que está configurado como padrão é o UTF8, mas no seu caso é preciso converter para o ISO.
client.RequestEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
Caso necessite encodar no UTF8, então:
client.RequestEncoding = System.Text.Encoding.UTF8;
meu problema é que esta parte aqui client.RequestEncoding nao é reconhecida sera que tme que importar algo ?
Faça seu login para responder