Aconselho baixar o SopUI para montar os xmls de consumo
SoapUI
https://www.soapui.org/Exemplo de consulta de endereço por cep, baseado no manual do SIGEP, um exemplo simples:
Obs.: apesar de a primeira linha da variável cxMLSoap está quebrando a atribuição começa com [ e termina com ]
cUrlWS := [https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente]
cxMLSoap := [<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cli="http://cliente.bean.master.sigep.bsb.correios.com.br/">]
cxMLSoap += [<soapenv:Header/>]
cxMLSoap += [<soapenv:Body>]
cxMLSoap += [ <cli:consultaCEP>]
cxMLSoap += [ <!--Optional:-->]
cxMLSoap += [ <cep>20735050</cep>]
cxMLSoap += [ </cli:consultaCEP>]
cxMLSoap += [</soapenv:Body>]
cxMLSoap += [</soapenv:Envelope>]
With Object oServerWS
:Open( "POST", cUrlWS, .F. )
:SetRequestHeader( "Content-Type", 'text/xml; charset="utf-8"' )
:SetRequestHeader( "Content-Length", Hb_NtoS( Hb_BLen( cxMLSoap ) ) )
:Send( cxMLSoap )
While :readyState != 4
:WaitForResponse( 500 )
Enddo
With Object oXMLDoc
:async := .F.
If :load( oServerWS:responseXML )
Begin Sequence With __BreakBlock()
cBairro := :getElementsByTagName( "bairro" ):item(0):Text
cCep := :getElementsByTagName( "bairro" ):item(0):Text
cCidade := :getElementsByTagName( "cidade" ):item(0):Text
cEnd := :getElementsByTagName( "end" ):item(0):Text
cUF := :getElementsByTagName( "uf" ):item(0):Text
End
Else
Break
Endif
End With
End With