XML DO WEBSERVICE SENDO CRIADO
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
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
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?
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?
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...
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...
o link do meu webservice é http://loja.tray.com.br/webservice/ws_servidor.php?wsdl
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})
dim tray.WSCadastraDadosProdutowsdl = Me.Invoke([Ô]fWSCadastraDadosProduto[Ô], New Object() {pid_loja, plogin, psenha, id_produto, id_caracteristica, valor})
lek... o problema é que o metodo Invoke, ele me retorna um objeto do tipo Object()
Não. Eu vi o WSDL, e retorna um objeto WSCadastraDadosProdutowsdl
Ele(o retorno) pode ser instanciado como Object, mas é do tipo WSCadastraDadosProdutowsdl
Ele(o retorno) pode ser instanciado como Object, mas é do tipo WSCadastraDadosProdutowsdl
mas sendo q WSCadastraDadosProdutowsdl, nao é uma classe... como poderei retornar este método ?
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
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
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...
- 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...
Tópico encerrado , respostas não são mais permitidas