Como consumir um WebService via HTTP com login e senha ?

06/07/2017

25

Preciso invocar/consumir o método listarProdutos conforme mostra o WSDL abaixo:

<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-hudson-28-. -->
<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-hudson-28-. -->
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice.consulta.spcjava.spcbrasil.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://webservice.consulta.spcjava.spcbrasil.org/" name="consultaWebService">
<types>...</types>
<message name="listarProdutos"/>
<message name="listarProdutosResponse">
<part name="produtos" element="tns:produtos"/>
</message>
<message name="consultar">...</message>
<message name="consultarResponse">...</message>
<message name="detalharProduto">...</message>
<message name="detalharProdutoResponse">...</message>
<message name="consultaComplementar">...</message>
<message name="consultaComplementarResponse">...</message>
<message name="consultaScore">...</message>
<message name="consultaScoreResponse">...</message>
<portType name="consultaWebService">...</portType>
<binding name="consultaWebServicePortBinding" type="tns:consultaWebService">...</binding>
<service name="consultaWebService">...</service>
</definitions>


Conforme orientação abaixo tenho que consumir o método: "listarProdutos"

WSDL:
Adicionar ao final da URL "?wsdl"
Deve ser utilizado o charset UTF-8 no envio das informações.

O propósito deste documento é apresentar o web-service disponível para consulta a produtos
do XXX Brasil.

Autenticação
A autenticação desse serviço segue a forma padrão Http basic (ver documento "Forma padrão
de autenticação dos web-services da aplicação Java").

Operação "listarProdutos"
Descrição: Retorna os produtos disponíveis para consulta.

Regras de uso:
1. Caso não existam produtos disponíveis para o operador, a operação não retorna dado.

Parâmetros de Entrada: não se aplica.
Retorno: Lista dos produtos disponíveis para o operador.

Fiz alguns cursos relacionados com o assunto aqui no site Devmedia, mas nenhum falando como consumir o WebService conforme orientação abaixo:

Forma padrão de autenticação dos webservices da aplicação Java para entidades e associados

É necessário que o cliente possua um operador cadastrado no sistema, com permissão de
acesso "web-service" e senha específica para o meio de acesso; o mecanismo de autenticação
utiliza o padrão HTTP basic authentication.

Os dados de login (operador e senha) devem ser enviados no header específico
(Authorization), criptografados em Base 64,exemplo:

O nome do operador (no exemplo, "wsteste") e a senha (no exemplo, "wsteste333")
devem ser concatenados:
wsteste:wsteste333

Em seguida, devem ser criptografados em Base 64:
d3N0ZXN0ZTp3c3Rlc3RlMzMz

As requisições devem ser enviadas contendo o header, utilizando a sequencia
criptografada:
Authorization: Basic d3N0ZXN0ZTp3c3Rlc3RlMzMz

O login é executado em toda operação do web-service; sendo assim, toda requisição
deve possuir o header especificado acima; caso o login não ocorra com sucesso, o
serviço retorna "HTTP ERROR: 401";

Exemplo de requisição contendo o header:

Cookie: $Version=0; JSESSIONID=48g39p406ezh_dev01; $Path=/spc
Authorization: Basic d3N0ZXN0ZTp3c3Rlc3RlMzMz
Host: localhost:8080
Content-Length: 1799
SOAPAction: ""
User-Agent: Jakarta Commons-HttpClient/3.0.1
Content-Type: text/xml;charset=UTF-8
Connection: close
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:web="http://webservice.consulta.sssjava.sssbrasil.org/">
 <soapenv:Header/>
 <soapenv:Body>
 ...
 </soapenv:Body>
</soapenv:Envelope>
Responder

Posts

21/11/2018

Aline Paradizo

Olá, Adriano!
Tudo bem?
Você conseguir fazer essa integração? Eu havia conseguido fazer via Oracle, mas parou de funcionar há alguns dias.
Estou tentando fazer pelo Visual Studio, mas não estou conseguindo incluir os dados da pessoa física.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira