WEBSERVICE - COMO TRABALHAR COM BASE64BINARY
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é
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é
Sem mistério:
ConsultarComunicacao retorno = ws.ConsultarComunicacao(pUsuario, mID, mPCodTipoProc);
File.WriteAllBytes(@[Ô]c:\pasta\arquivo[Ô], Convert.FromBase64String(retorno.ComunicacaoEletronica.Documentos));
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.
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.
Publique o WSDL completo, ou melhor forneça o endereço do mesmo se possÃvel
Tente assim:
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.
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.
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..
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..
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.
pusuario deve ser uma variável string, mId deve ser string e mPCodTipoProc deve ser int.
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.
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.
Então é:
edocinterfacev2.ConsultarComunicacao retorno = ws.ConsultarComunicacao(pUsuario, mID, mPCodTipoProc);
File.WriteAllBytes(@[Ô]c:\pasta\arquivo.xxx[Ô], Convert.FromBase64String(retorno.Documentos));
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[Ô]
[Ô]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[Ô]
Ok, passe o mouse sobre o método [Ô]ConsultarComunicacao[Ô] e veja que objeto ele retorna
Faça seu login para responder