我有一个Web服务,它返回字节数组中的数据。现在我想在我的控制台项目中读取该数据。我怎么能这样做,我已经添加了访问该Web服务的欲望引用。我正在使用vb .net VS2012.Thanks.My网络服务方法如下。
Public Function GetFile() As Byte()
Dim response As Byte()
Dim filePath As String = "D:\file.txt"
response = File.ReadAllBytes(filePath)
Return response
End Function
答案 0 :(得分:0)
类似的东西,
Dim result As String
Using (Dim data As New MemoryStream(response))
Using (Dim reader As New StreamReader(data))
result = reader.ReadToEnd()
End Using
End Using
如果你知道编码,我们可以说它是UTF-8,
Dim result = System.Text.UTF8Encoding.GetString(response)
继续你的评论后,我认为你是在宣称这一点。
Dim response As Byte() 'Is the bytes of a Base64 encoded string.
因此,我们知道所有字节都是有效的ASCII(因为它的Base64),所以字符串编码是可互换的。
Dim base64Encoded As String = System.Text.UTF8Encoding.GetString(response)
现在,base64Encoded
是某些二进制文件的字符串Base64表示。
Dim decodedBinary As Byte() = Convert.FromBase64String(base64Encoded)
因此,我们已将编码的base64更改为它所代表的二进制文件。现在,因为我可以看到在你的例子中,你正在阅读一个名为"D:/file.txt"
的文件,我将假设文件的内容是一个字符编码的字符串,但我不知道'知道字符串的编码。 StreamReader
类在构造函数中有一些逻辑,可以对字符编码进行有根据的猜测。
Dim result As String
Using (Dim data As New MemoryStream(decodedBinary))
Using (Dim reader As New StreamReader(data))
result = reader.ReadToEnd()
End Using
End Using
希望现在result
包含文本文件的上下文。