none
Recibir fichero XML desde un web service RRS feed

  • Pregunta

  • Hola,

    Tengo un servicio web que me devuelve un XML en un como Array de Bytes:

    <WebMethod()> Public Function Descarga_XML_REPL() As Byte()

            Dim _Buffer() As Byte = Nothing

            Try

                Dim _FileName As String

                _FileName = "C:\xml.xml"

                ' Open file for reading

                Dim _FileStream As New System.IO.FileStream(_FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read)

                ' attach filestream to binary reader

                Dim _BinaryReader As New System.IO.BinaryReader(_FileStream)

                ' get total byte length of the file

                Dim _TotalBytes As Long = New System.IO.FileInfo(_FileName).Length

                ' read entire file into buffer

                _Buffer = _BinaryReader.ReadBytes(CInt(Fix(_TotalBytes)))

                ' close file reader

                _FileStream.Close()

                _FileStream.Dispose()

                _BinaryReader.Close()

            Catch _Exception As Exception

                ' Error

                Console.WriteLine("Exception caught in process: {0}", _Exception.ToString())

            End Try

            'Registramos la descarga del XML del veterinario. Lo registramos en un XML indicando la fecha de la descarga.

            Return _Buffer

        End Function

    Luego desde mi windows phone he desarrollado un programa con el que quiero recuperar dicho fichero y almacenarlo para luego cargarlo.

    Public Sub DescargarXML(sender As Object, e As wsService.Descarga_XML_REPLCompletedEventArgs)

            If IO.Module1.File.FileExists("XML.xml") Then

                IO.Module1.File.DeleteFile("XML.xml")

            End If

            ' Create a file and write the byte data to a file.

            Dim xml As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()

            Dim stream As IsolatedStorageFileStream = xml.CreateFile("XML_REPL.xml")

            Dim streamWrite As StreamWriter = New StreamWriter(stream)

            streamWrite.Write(e.Result)

            streamWrite.Close()

    End Sub

    ¿qué estoy hacienda mal? A ver si alguien me puede ayudar.

    Saludos.

    sábado, 1 de febrero de 2014 12:14

Respuestas

  • Hola.

    Para poder entender mejor tu pregunta, ¿Qué error te da exactamente? Has comprobado que e.Result contiene los datos? Además, por lo que veo tu webservice devuelve un array de bytes, y StreamWriter.Write, no escribe array de bytes. tendrías que convertir ese array de bytes a una cadena de base 64 con la clase Convert.ToBase64String para poder escribirla

    Un saludo


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter

    sábado, 8 de febrero de 2014 8:56

Todas las respuestas

  • Hola.

    Para poder entender mejor tu pregunta, ¿Qué error te da exactamente? Has comprobado que e.Result contiene los datos? Además, por lo que veo tu webservice devuelve un array de bytes, y StreamWriter.Write, no escribe array de bytes. tendrías que convertir ese array de bytes a una cadena de base 64 con la clase Convert.ToBase64String para poder escribirla

    Un saludo


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter

    sábado, 8 de febrero de 2014 8:56
  • Hola!

    Es un gusto que visites el foro. Déjanos saber tus comentarios respecto a la última respuesta. Si la Información que te han proporcionado es capaz de resolver tu consulta, de lo contrario te pido de favor desmarques la respuesta y nos lo hagas saber.

    Saludos,

    Miguel

    MSDN/TechNet Soporte Comunidades

    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema.
    Es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    jueves, 20 de febrero de 2014 18:11
  • Muchas gracias!!! sí ese era el problema.

    Saludos.

    jueves, 20 de febrero de 2014 20:39