Search code examples
vb.netweb-servicesrequestresponseblueprism

VB - save response as binary


Please see part of the code used to save response as a string to resultData variable:

Using response As WebResponse = request.GetResponse()
Dim responseStream As IO.Stream = response.GetResponseStream()
Dim sr As New IO.StreamReader(responseStream)
resultData = sr.ReadToEnd()

It works correctly.

I have one case where the output is a binary file. How can I modify this code to save the reponse as a binary ResultData variable?

Thank you in advance for your support.


Solution

  • There is many ways to do that. This one, is one of those. (This one help you also to show the progress) However (as advice) to monitoring progress there exists better approaches like Async methods etc. In the example below I’m going to show you how to save e WebRequest as binary data. Note that, I’m based on your code and what you want, but, as I said before there exists different better approaches.

           'here the file you want to save
            Dim LocalFilePath As String = "C:\Users\MyUser\Documents\FolderXYZ\yourfileName.extension"
    
            Using reader As IO.Stream = request.GetResponse.GetResponseStream
                Using writer As IO.Stream = New IO.FileStream(LocalFilePath, IO.FileMode.OpenOrCreate, IO.FileAccess.ReadWrite)
                    Dim b(1024 * 2) As Byte
                    Dim buffer As Integer = b.Length
                    Do While buffer <> 0
                        buffer = reader.Read(b, 0, b.Length)
                        writer.Write(b, 0, buffer)
                        writer.Flush()
                    Loop
                End Using
            End Using