Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

brns

Consumir Web Services escritos em Coldfusion usando VB.NET

Recommended Posts

Viva,

 

Estou a procurar consumir um serviço chamado GetMemberPointsAvailable usando VB.NET (2.0) . O wsdl está em: http://sp-s3g-uat.iclp.com.au/ws/egapi/v1-0/egapi.cfc?wsdl

 

É um serviço escrito em coldfusion - axis engine.

 

Adicionei a referrência do Web Service no Visual Studio, chamei o serviço, mas não recebo nenhuma resposta - apenas uma array vazia.

 

Agradeço antecipadamente qualquer ajuda.

BS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique junto ao fornecedor do webservice qual é o retorno esperado, verifique também se os parâmetros utilizados (se houver) estão corretos.

 

Flwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

Viva:

 

Utilizando o SoapUI, o serviço devolve uma resposta de modo correcto:

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
   <soapenv:Body>
	  <getMemberPointsAvailableResponse xmlns='http://v10.egapi.ws'>
		 <getMemberPointsAvailableReturn xsi:type='ns1:Map'
xmlns:ns1='http://xml.apache.org/xml-soap'>
			<item xmlns=''>
			   <key xsi:type='xsd:string'>
				  RESPONSEERRORS
			   </key>
			   <value xsi:type='ns2:ArrayOf_xsd_anyType'
xmlns:ns2='http://rpc.xml.coldfusion'/>
			</item>
			<item xmlns=''>
			   <key xsi:type='xsd:string'>
				  RESPONSESUCCESS
			   </key>
			   <value xsi:type='xsd:string'>
				  true
			   </value>
			</item>
			<item xmlns=''>
			   <key xsi:type='xsd:string'>
				  RESPONSEDATA
			   </key>
			   <value xsi:type='ns1:Map'>
				  <item>
					 <key xsi:type='xsd:string'>
						POINTS_AVAILABLE
					 </key>
					 <value xsi:type='xsd:int'>
						415
					 </value>
				  </item>
			   </value>
			</item>
		 </getMemberPointsAvailableReturn>
	  </getMemberPointsAvailableResponse>
   </soapenv:Body>
</soapenv:Envelope>

 

Adicionei um botão no form e coloquei o seguinte código no evento de premir o botão:

 

Dim client As New webserviceICLP.SportingWS

For Each item As webserviceICLP.mapItem In client.getMemberPointsAvailable("xxxxx", "yyyy", "123456789")

MsgBox(item.key & vbNewLine & item.value)

Next

 

Retorna vazio...

 

De seguida procurei serializar a resposta com o seguinte código:

 

Dim wsICLP As New webserviceICLP.SportingWS

Dim MyParams() As webserviceICLP.mapItem = {New webserviceICLP.mapItem}

MyParams = wsICLP.getMemberPointsAvailable("xxxxx", "yyyy", "123456789")

MsgBox(SerializeToXML(MyParams))

Public Shared Function SerializeToXML(Of T)(ByVal obj As T) As String

Dim returnXML As String = String.Empty

Dim serializer As New Serialization.XmlSerializer(GetType(T))

Using writer As New IO.StringWriter

serializer.Serialize(New XmlTextWriter(writer), obj)

returnXML = writer.ToString()

End Using

Return returnXML

End Function

 

O resultado é:

 

<?xml version="1.0" encoding="utf-16"?><ArrayOfMapItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />

 

...ou seja, parece que vem apenas o cabeçalho do serviço e nada mais.

 

Obrigado pela ajuda!

BS

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.