Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 从数据流中获取字符串_Vb.net_Asp.net Web Api_Stream - Fatal编程技术网

Vb.net 从数据流中获取字符串

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

我正在通过.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(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”