我正在尝试从URL读取到System.IO.Stream对象。我试图使用是否可以从URL读取到System.IO.Stream对象?
Dim stream as Stream = New FileStream(msgURL, FileMode.Open)
但我得到一个错误,URI格式不支持FileStream对象。是否有一些方法可以使用从System.IO.Stream继承,它可以从URL中读取?
我正在尝试从URL读取到System.IO.Stream对象。我试图使用是否可以从URL读取到System.IO.Stream对象?
Dim stream as Stream = New FileStream(msgURL, FileMode.Open)
但我得到一个错误,URI格式不支持FileStream对象。是否有一些方法可以使用从System.IO.Stream继承,它可以从URL中读取?
VB.Net:
Using req As WebRequest = HttpWebRequest.Create("url here"), _
stream As Stream = req.GetResponse().GetResponseStream()
End Using
C#:
using(WebRequest req = HttpWebRequest.Create("url here"))
using (Stream stream = req.GetResponse().GetResponseStream())
{
}
使用WebClient.OpenRead
:
Using wc As New WebClient()
Using stream As Stream = wc.OpenRead(msgURL)
...
End Using
End Using
是的,你可以使用一个HttpWebRequest对象得到响应流:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream receiveStream = response.GetResponseStream();
// read the stream
receiveStream.Close();
response.Close();
(从the docs剥离并简化)。
如果我没有错,请求对象应该是WebRequest,而不是HttpWebRequest对象。 – 2011-09-29 15:17:45
使用此代码我无法反序列化Web请求另一端的内容。我建议在下面使用Thomas Levesque的回答,因为它的工作很完美。 – 2014-04-14 14:56:20