Enviar envelope SOAP / Send SOAP envelope
Faz uma requisição ao recurso SOAP informado no XML do envelope SOAP. Os parâmetros do bloco são obtidos com base em um endpoint WSDL.
Compatibilidade
Bloco servidor: cronapi.util.Operations.callSOAP()
Retorno
Retorna um envelope SOAP contendo as respostas da requisição feita ao web service SOAP.
Parâmetros
URL da Porta
URL que contém o endereço do web service que será acessado. Pode ser informado o endereço do arquivo WSDL ou o valor do atributo location do elemento <soap:address>.
Posição: 1
Inglês: Port URL
Tipo: Texto / String
Exemplo: "https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl"
SOAP Action
Especifica a ação que será executada no web service, geralmente é uma URI que identifica a operação a ser realizada. No arquivo WSDL utilizado, você pode encontrar esse valor definido no atributo soapAction do elemento <soap:operation> . Dependendo do endpoint WSDL utilizado, esse atributo pode estar vazio, não sendo necessário informar o parâmetro no bloco.
Posição: 2
Inglês: SOAP Action
Tipo: Texto / String
Exemplo: "http://example.com/valueoperation"
Cabeçalhos
Mapa contendo os cabeçalhos da requisição. É um parâmetro opcional utilizado para incluir informações adicionais relacionadas à requisição, como o formato da mensagem, autorização, autenticação, entre outras. Para a criação do mapa você pode utilizar o bloco criar mapa com e adicionar as chaves e valores desejados.
Posição: 3
Inglês: Headers
Tipo: Mapa / Map
Exemplo: "{Content-Type: text/xml}"
XML do Envelope
Conteúdo XML do envelope SOAP a ser chamado. O conteúdo do XML do envelope depende da definição do web service utilizado e das operações suportadas por ele. Para testar e montar o XML do envelope, pode ser utilizada a ferramenta de testes de web services SoapUI.
Posição: 4
Inglês: Envelope XML
Tipo: Texto / String
Exemplo:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m="http://cliente.bean.master.sigep.bsb.correios.com.br/"> <soapenv:Header/> <soapenv:Body> <m:consultaCEP> <cep>04707910</cep> </m:consultaCEP> </soapenv:Body> </soapenv:Envelope>
Exemplo
Para obtermos um recurso via SOAP, é necessário que exista um endpoint WSDL. Assim, para este exemplo usaremos a função para consulta de CEPs disponibilizada no web service dos correios.
Na função abaixo, no bloco Enviar envelope SOAP, os parâmetros URL da Porta e XML do Envelope foram obtidos com base nas informações do WSDL dos correios. O parâmetro SOAP Action está vazio, pois no arquivo WSDL em questão esse atributo não é especificado. No parâmetro Cabeçalhos, inserimos o bloco criar mapa com que cria um objeto mapa com a chave "Content-Type", que especifica o formato da resposta que será obtida. Após a execução da função, a resposta da requisição será impressa no console do depurador.
No campo abaixo, apresentamos o resultado de execução da função da Figura 2.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:consultaCEPResponse xmlns:ns2="http://cliente.bean.master.sigep.bsb.correios.com.br/">
<return>
<bairro>Vila Gertrudes</bairro>
<cep>04707910</cep>
<cidade>São Paulo</cidade>
<complemento2></complemento2>
<end>Avenida Roque Petroni Júnior, 999</end>
<uf>SP</uf>
</return>
</ns2:consultaCEPResponse>
</soap:Body>
</soap:Envelope>Nesta página
- 1 Compatibilidade
- 2 Retorno
- 3 Parâmetros
- 3.1 URL da Porta
- 3.2 SOAP Action
- 3.3 Cabeçalhos
- 3.4 XML do Envelope
- 4 Exemplo