WEBSERVICE - COMO TRABALHAR COM BASE64BINARY

JMANGAS 20/02/2014 15:01:12
#435028
Pessoal,

Tenho essa parte do wsdl, onde desejo baixar o arquivo que está em base64binary:

<s:element name=[Ô]ConsultarComunicacao[Ô]>
<s:complexType>
<s:sequence>
<s:element minOccurs=[Ô]0[Ô] maxOccurs=[Ô]1[Ô] name=[Ô]pLogin[Ô] type=[Ô]s:string[Ô] />
<s:element minOccurs=[Ô]0[Ô] maxOccurs=[Ô]1[Ô] name=[Ô]pId[Ô] type=[Ô]s:string[Ô] />
<s:element minOccurs=[Ô]1[Ô] maxOccurs=[Ô]1[Ô] name=[Ô]pCodTipoProcesso[Ô] type=[Ô]s:int[Ô] />
</s:sequence>
</s:complexType>
</s:element>
<s:element name=[Ô]ConsultarComunicacaoResponse[Ô]>
<s:complexType>
<s:sequence>
<s:element minOccurs=[Ô]0[Ô] maxOccurs=[Ô]1[Ô] name=[Ô]ConsultarComunicacaoResult[Ô] type=[Ô]tns:ComunicacaoEletronica[Ô] />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name=[Ô]ComunicacaoEletronica[Ô]>
<s:sequence>
<s:element minOccurs=[Ô]0[Ô] maxOccurs=[Ô]1[Ô] name=[Ô]Id[Ô] type=[Ô]s:string[Ô] />
<s:element minOccurs=[Ô]0[Ô] maxOccurs=[Ô]1[Ô] name=[Ô]Tipo[Ô] type=[Ô]s:string[Ô] />
<s:element minOccurs=[Ô]0[Ô] maxOccurs=[Ô]1[Ô] name=[Ô]DadosDocumento[Ô] type=[Ô]tns:DadosDocumento[Ô] />
<s:element minOccurs=[Ô]0[Ô] maxOccurs=[Ô]1[Ô] name=[Ô]Documentos[Ô] type=[Ô]s:base64Binary[Ô] />
</s:sequence>
</s:complexType>

Como faço para baixar o arquivo que está em [Ô] name=[Ô]Documentos[Ô] type=[Ô]s:base64Binary[Ô] [Ô] ?

ws.ConsultarComunicacao(pUsuario, mID, mPCodTipoProc).Documentos

Porém, não sei como fazer para dar continuidade a esta chamada e possibilitar o download do arquivo que está em base64Binary. Teria que guardar em stream?

Grato

José
KERPLUNK 20/02/2014 15:54:53
#435031
Sem mistério:

ConsultarComunicacao retorno = ws.ConsultarComunicacao(pUsuario, mID, mPCodTipoProc);
File.WriteAllBytes(@[Ô]c:\pasta\arquivo[Ô], Convert.FromBase64String(retorno.ComunicacaoEletronica.Documentos));

JMANGAS 20/02/2014 19:13:11
#435047
KERPLUNK,


ConsultarComunicacao retorno = ws.ConsultarComunicacao(pUsuario, mID, mPCodTipoProc);

Nesta linha ele informa que: [Ô]ConsultarComunicacao[Ô], não pode ser encontrado

e

ws.ConsultarComunicacao(pUsuario, mID, mPCodTipoProc)

Nesta linha ele informa que: [Ô]the best overloaded method match for has some invalid arguments[Ô]

Grato.


KERPLUNK 21/02/2014 08:50:07
#435070
Publique o WSDL completo, ou melhor forneça o endereço do mesmo se possível
KERPLUNK 21/02/2014 11:26:44
#435078
Tente assim:

ws.ConsultarComunicacao retorno = ws.ConsultarComunicacao(pUsuario, mID, mPCodTipoProc);
File.WriteAllBytes(@[Ô]c:\pasta\arquivo.xxx[Ô], Convert.FromBase64String(retorno.Documentos));



ConsultarComunicacao é um objeto do webservice, por dedução [Ô]ws[Ô] é a sua instância do WebService, por isso, precisa especificar, como fiz.
As variáveis pUsuario, mID e mPCodTipoProc, são especificadas por você. pUsuario provavelmente é o mesmo usuário que você usa no método [Ô]Login[Ô] desse webservice, mID algum tipo de identificacao e a outra é o tipo de processo.
JMANGAS 21/02/2014 11:55:17
#435080
KERPLUNK,

Alguma coisa está errada..... Pois, o que seria [Ô]fácil[Ô] parece difícil.......

Em:
ws.ConsultarComunicacao

Ele informa que: [Ô]The type or namespace name [Ô]ws[Ô] could not be found (are you missing a using directive or an assembly reference?[Ô]


Em
ws.ConsultarComunicacao(pUsuario, mID, mPCodTipoProc)

Ele informa que : [Ô]The best overloaded method match for [ô]webapplication1.Edocinterfacev2.Edocinterfacev2.ConsultarComunicacao(string,string,int) has some invalid arguments[Ô]


Grato..


KERPLUNK 21/02/2014 13:08:57
#435081
Qual a variável de instância do webservice?
pusuario deve ser uma variável string, mId deve ser string e mPCodTipoProc deve ser int.
JMANGAS 21/02/2014 13:35:25
#435087
Na hora da importação eu nomeei para edocinterfacev2

edocinterfacev2.EDOCInterfaceV2 ws = new edocinterfacev2.EDOCInterfaceV2();


Em:
ws.ConsultarComunicacao - continua o erro



Corrigi (de tanto mexer acabei alterando a variável) o int do mPCodTipoProc e não está mais reclamando......

Grato.
KERPLUNK 21/02/2014 13:54:07
#435094
Então é:

edocinterfacev2.ConsultarComunicacao retorno = ws.ConsultarComunicacao(pUsuario, mID, mPCodTipoProc);
File.WriteAllBytes(@[Ô]c:\pasta\arquivo.xxx[Ô], Convert.FromBase64String(retorno.Documentos));
JMANGAS 21/02/2014 14:16:52
#435097
KERPLUNK,

[Ô]edocinterfacev2.ConsultarComunicacao[Ô]

Ele informa que não existe :

[Ô]The type or namespace name [ô]ConsultarComunicacao[ô] does not exist in the namespace [ô]WebApplication1.edocinterfacev2[ô] (are you missing an assembly reference?)[Ô]

ConsultarComunicacao aparece somente quando uso [Ô]ws[Ô]
KERPLUNK 21/02/2014 14:41:51
#435101
Ok, passe o mouse sobre o método [Ô]ConsultarComunicacao[Ô] e veja que objeto ele retorna
Página 1 de 2 [12 registro(s)]
Faça seu login para responder