CONSUMO DE URL COM HEADER

JOAOBENEVIDES 19/05/2022 23:35:49
#499897
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
JOAOBENEVIDES 20/05/2022 07:42:33
#499899
bom dia jaba tentei fazer mais sem sucesso , vou procurando ainda se alguem tiver alguma ideia , estou a disposição
KERPLUNK 20/05/2022 10:15:19
#499901
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?
JOAOBENEVIDES 20/05/2022 13:19:21
#499905
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>
KERPLUNK 20/05/2022 15:30:45
#499906
E da algum erro, alguma mensagem?
JOAOBENEVIDES 20/05/2022 21:47:21
#499907
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>".
JABA 21/05/2022 02:30:41
#499908
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
});

JOAOBENEVIDES 21/05/2022 10:39:25
#499910
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
JABA 21/05/2022 16:27:45
#499911
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;







JOAOBENEVIDES 21/05/2022 17:45:35
#499912
meu problema é que esta parte aqui client.RequestEncoding nao é reconhecida sera que tme que importar algo ?
Página 1 de 2 [18 registro(s)]
Faça seu login para responder