Vb.net 从数据流中获取字符串
我正在通过.NET 3.5应用程序访问API,到目前为止,我的代码如下所示:Vb.net 从数据流中获取字符串,vb.net,asp.net-web-api,stream,Vb.net,Asp.net Web Api,Stream,我正在通过.NET 3.5应用程序访问API,到目前为止,我的代码如下所示: Dim strLink As String = "http://www.google.co.uk" Dim request As WebRequest = System.Net.WebRequest.Create("http://random-web-api/controller/id") Dim response As WebResponse = request.GetResponse() If CType(r
Dim strLink As String = "http://www.google.co.uk"
Dim request As WebRequest = System.Net.WebRequest.Create("http://random-web-api/controller/id")
Dim response As WebResponse = request.GetResponse()
If CType(response,HttpWebResponse).StatusCode = HttpStatusCode.OK Then
Dim dataStream As Stream = response.GetResponseStream()
' How do I get the String from the Stream?
response.Close()
End If
我能够调用API并获得OK状态,但我不知道如何在VB中将我的
ResponseStream
转换为字符串
?这是我能想到的最简单的方法:
'Convert stream to string
Dim reader As New StreamReader(response.GetResponseStream())
Dim streamText As String = reader.ReadToEnd()
注意:这仅适用于ASCII编码
编辑,您可以将以下方法添加到应用程序中,此方法允许使用编码参数
Private Shared Function MemoryStreamToString(ms As MemoryStream, enc As Encoding) As String
Return Convert.ToBase64String(enc.GetString(ms.GetBuffer(), 0, CInt(ms.Length)))
End Function
上述函数的调用方式如下:
Dim streamText As String = MemoryStreamToString(response.GetResponseStream(), System.Encoding.ENCODINGTYPEHERE)
转到此处了解有关的更多信息,以便将流转换为需要使用编码的字符串。不确定这是否是你要找的
Dim strReader As New StreamReader(dataStream, Encoding.UTF8)
Dim yourString As String = strReader.ReadToEnd
流应该返回什么,应该填充什么?流不是通常是字节数组吗?它将以字符串形式填充
“10”
。