# Requisição SOAP

Com o módulo de **Requisição SOAP** é possível realizar uma requisição do tipo SOAP, que utiliza o formato de dados XML em suas requisições e respostas.

<figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FkUVNU1OPOZlK2aUzdaCq%2FrequestSoap-gif.gif?alt=media&#x26;token=bc5aaea6-cbd2-436d-9e08-7f00efc87060" alt=""><figcaption><p>Utilização do módulo <strong>Requisição SOAP</strong> em um fluxo real</p></figcaption></figure>

### Detalhes do módulo

Nas configurações do módulo é preciso preencher os campos:

* WSDL (notação XML que descreve um serviço da Web)
* Método (Tipo de método a ser utilizado)
* Basic security / WS security
* WSDL Options
* Headers (Cabeçalho da requisição)
* Corpo (Body da requisição)

Os campos **WSDL Options**, **Headers** e **Corpo** são campos textuais que devem ser preenchidos e estão abaixo do campo "Basic Security"

### WSDL Options

**endpoint (string)**: Substitua o host especificado pelo serviço SOAP no arquivo WSDL.

**envelopeKey (string)**: Defina uma envelopeKey personalizada. (Padrão: 'SOAP').

**preserveWhitespace (boolean)**: Preserve todos os caracteres de espaço em branco iniciais e finais em texto e dados.

**escapeXML (boolean)**: Não utilize caracteres XML especiais (por exemplo, e, >, < etc) em mensagens SOAP. (Padrão: true).

**suppressStack (boolean)**: Suprima o rastreamento de pilha completo para mensagens de erro.

**returnFault (boolean)**: Retorne Invalid XML SOAP fault em uma solicitação inválida. (Padrão: false).

**forceSoap12Headers (boolean)**: Habilite SOAP 1.2 compliance.

**httpClient (Object)**: Substitua o objeto interno HttpClient pelo seu próprio. Deve implementar request(url, data, callback, exheaders, exoptions).

**request (Object)**: Substituir o módulo de solicitação padrão (Axios a partir de v0.40.0).

**wsdl\_headers (Object)**: Defina cabeçalhos HTTP com valores a serem enviados em solicitações WSDL.

**wsdl\_options (Object)**: Defina opções para o módulo de solicitação em solicitações WSDL. Se estiver usando o módulo de solicitação padrão, consulte Configuração de solicitação | Axios Docs.

**disableCache (boolean)**: Impede o armazenamento em cache de arquivos WSDL e objetos de opção.

**overridePromiseSuffix (string)**: Substitua o sufixo do nome do método padrão das operações WSDL para métodos baseados em Promise. Se qualquer nome de operação WSDL terminar com Async, você deve usar esta opção. (Padrão: Async).

**normalizeNames (boolean)**: Substitua caracteres não identificadores (\[^a-z$\_0-9]) por \_ em nomes de operação WSDL. \
Observação: Os clientes que usam WSDLs com duas operações soap: (method e soap-method), serão substituídos. Nesse caso, você deve usar a notação de parênteses (client'soap:method').

**namespaceArrayElements (boolean)**: Suporta semântica de array não padrão. Os JSON Arrays da forma *{list: \[{elem: 1}, {elem: 2}]}* serão empacotados em XML como *1 2*. Se for false, seriam empacotados em *1 2* . (Padrão: true).

**stream (boolean)**: Use streams para analisar as respostas XML SOAP. (Padrão: false).

**returnSaxStream (boolean)**: Retorne o SAX stream, transferindo a responsabilidade de analisar o XML para o usuário final. Válido apenas quando a opção stream estiver definida como *true*. (Padrão: false).

**parseReponseAttachments (boolean)**: Trate a resposta como resposta multipart/related com anexo MTOM. Acesse os anexos na propriedade *lastResponseAttachments* de SoapClient. (Padrão: false).
