XML DO WEBSERVICE SENDO CRIADO

CLSCARLOS 26/09/2011 11:24:43
#385252
se liga no metodo q to passando pra eles:

retornoc = tray.fWSCadastraDadosProduto(CODIGOUSUARIO,
USUARIO,
SENHA
codigo,
cont.ToString,
dr([Ô]Peso[Ô]).ToString,
CHAVEDEACESSO)

<System.Web.Services.Protocols.SoapRpcMethodAttribute([Ô]urn:fWSCadastraDadosProdutowsdl#fWSCadastraDadosProduto[Ô], RequestNamespace:=[Ô]urn:fWSCadastraDadosProdutowsdl[Ô], ResponseNamespace:=[Ô]urn:fWSCadastraDadosProdutowsdl[Ô])> _
Public Function fWSCadastraDadosProduto(<System.Xml.Serialization.SoapElementAttribute(DataType:=[Ô]integer[Ô])> ByVal pid_loja As String, ByVal plogin As String, ByVal psenha As String, <System.Xml.Serialization.SoapElementAttribute(DataType:=[Ô]integer[Ô])> ByVal id_produto As String, <System.Xml.Serialization.SoapElementAttribute(DataType:=[Ô]integer[Ô])> ByVal id_caracteristica As String, ByVal valor As String, ByRef chaves As String) As <System.Xml.Serialization.SoapElementAttribute([Ô]status[Ô])> String
KERPLUNK 26/09/2011 13:25:46
#385262
Deixa eu tentar explicar:
No webservice, ocorre um processamento conforme os parâmetros que vc passou para o método. Esse processamento gera um objeto que será serializado pelo IIS, ou seja, não existe um [Ô]loop[Ô] ou qualquer procedimento que mostre em tempo real o XML sendo gerado. O retorno que vc pega (retornoc) não contém um XML?
CLSCARLOS 26/09/2011 13:42:24
#385263
nao, esse retornoc é do tipo String... veja só o que está dentro desta Function:

Dim results() As Object = Me.Invoke([Ô]fWSCadastraDadosProduto[Ô], New Object() {pid_loja, plogin, psenha, id_produto, id_caracteristica, valor})
chaves = CType(results(1), String)
Return CType(results(0), String)
End Function


Return CType(results(0), String) é quando eu converto o objeto Object em um objeto String, pra poder visualizar a resposta do webservice...
CLSCARLOS 26/09/2011 13:50:36
#385265
o link do meu webservice é http://loja.tray.com.br/webservice/ws_servidor.php?wsdl
KERPLUNK 26/09/2011 14:09:43
#385268
o WebMethod fWSCadastraDadosProduto retorna um objeto do tipo WSCadastraDadosProdutowsdl. Por isso deveria ser algo como:
dim tray.WSCadastraDadosProdutowsdl = Me.Invoke([Ô]fWSCadastraDadosProduto[Ô], New Object() {pid_loja, plogin, psenha, id_produto, id_caracteristica, valor})
CLSCARLOS 26/09/2011 15:01:27
#385274
lek... o problema é que o metodo Invoke, ele me retorna um objeto do tipo Object()
KERPLUNK 26/09/2011 15:04:54
#385276
Não. Eu vi o WSDL, e retorna um objeto WSCadastraDadosProdutowsdl
Ele(o retorno) pode ser instanciado como Object, mas é do tipo WSCadastraDadosProdutowsdl
CLSCARLOS 26/09/2011 15:48:57
#385286
mas sendo q WSCadastraDadosProdutowsdl, nao é uma classe... como poderei retornar este método ?
KERPLUNK 26/09/2011 15:54:17
#385287
Observe o que o WSDL diz sobre esse método:
Output:
use: encoded
namespace: urn:fWSCadastraDadosProdutowsdl
encodingStyle: http://schemas.xmlsoap.org/soap/encoding/
message: fWSCadastraDadosProdutoResponse
parts:
status: xsd:string
chaves: xsd:string



A descrição completa desse método é:
Name: fWSCadastraDadosProduto
Binding: TrayWebServicewsdlBinding
Endpoint: http://loja.tray.com.br/webservice/ws_servidor.php
SoapAction: urn:fWSCadastraDadosProdutowsdl#fWSCadastraDadosProduto
Style: rpc
Input:
use: encoded
namespace: urn:fWSCadastraDadosProdutowsdl
encodingStyle: http://schemas.xmlsoap.org/soap/encoding/
message: fWSCadastraDadosProdutoRequest
parts:
pid_loja: xsd:integer
plogin: xsd:string
psenha: xsd:string
id_produto: xsd:integer
id_caracteristica: xsd:integer
valor: xsd:string
Output:
use: encoded
namespace: urn:fWSCadastraDadosProdutowsdl
encodingStyle: http://schemas.xmlsoap.org/soap/encoding/
message: fWSCadastraDadosProdutoResponse
parts:
status: xsd:string
chaves: xsd:string
Namespace: urn:fWSCadastraDadosProdutowsdl
Transport: http://schemas.xmlsoap.org/soap/http
Documentation: Cadastra dados do produto
KERPLUNK 26/09/2011 16:00:12
#385288
Bem vamos lá passo a passo:
- Adicione a referência ao webservice no seu código(se já não fez isso)
o código básico para executar esse webmethod é:
tray.TrayWebServicewsdl ws1 = new tray.TrayWebServicewsdl();
string nada;
string x = ws1.fWSCadastraDadosProduto([Ô][Ô], [Ô][Ô], [Ô][Ô], [Ô][Ô], [Ô][Ô], [Ô][Ô], out nada );

nesse ponto [Ô]X[Ô] vai conter o retorno do método...
Página 2 de 3 [21 registro(s)]
Tópico encerrado , respostas não são mais permitidas