VB - 将响应保存为二进制
VB - save response as binary
请查看用于将响应作为字符串保存到 resultData
变量的部分代码:
Using response As WebResponse = request.GetResponse()
Dim responseStream As IO.Stream = response.GetResponseStream()
Dim sr As New IO.StreamReader(responseStream)
resultData = sr.ReadToEnd()
它工作正常。
我遇到过一个输出是二进制文件的情况。我如何修改此代码以将响应保存为二进制 ResultData
变量?
提前感谢您的支持。
有很多方法可以做到这一点。这个,就是其中之一。 (这个帮助你也显示进度)
但是(作为建议)要监控进度,存在更好的方法,如异步方法等。
在下面的示例中,我将向您展示如何将 WebRequest 保存为二进制数据。
请注意,我是基于你的代码和你想要的,但是,正如我之前所说,存在不同的更好方法。
'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
请查看用于将响应作为字符串保存到 resultData
变量的部分代码:
Using response As WebResponse = request.GetResponse()
Dim responseStream As IO.Stream = response.GetResponseStream()
Dim sr As New IO.StreamReader(responseStream)
resultData = sr.ReadToEnd()
它工作正常。
我遇到过一个输出是二进制文件的情况。我如何修改此代码以将响应保存为二进制 ResultData
变量?
提前感谢您的支持。
有很多方法可以做到这一点。这个,就是其中之一。 (这个帮助你也显示进度) 但是(作为建议)要监控进度,存在更好的方法,如异步方法等。 在下面的示例中,我将向您展示如何将 WebRequest 保存为二进制数据。 请注意,我是基于你的代码和你想要的,但是,正如我之前所说,存在不同的更好方法。
'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