我使用此代码从IP Camera中捕获图像:
HttpWebRequest reqs = (HttpWebRequest)WebRequest.Create("http://" + ip + snapshotCommand);
reqs.Method = "POST";
reqs.Timeout = 4000;
reqs.Credentials = new NetworkCredential(user, pass);
reqs.PreAuthenticate = true;
HttpWebResponse resp = (HttpWebResponse)reqs.GetResponse();
if (resp != null)
{
Stream stm = resp.GetResponseStream();
img = new Bitmap(stm);
stm.Close();
}
但是,由于CanSeek
& CanWrite
是假的。
我尝试了很多方法,例如Copyto
(MemoryStream),但问题仍然存在。
你能帮帮我吗?
这是使用MemoryStream的代码:
Stream stm = resp.GetResponseStream();
MemoryStream ms = new MemoryStream();
stm.CopyTo(ms);
ms.Position = 0;
ReadTimeout
&的这个“ms” WriteTimeout
投掷:
消息“此流不支持超时。”
因为canTimeout()
对于MemoryStream也是假的。
最后我找到了这个解决方案,效果很好: https://stackoverflow.com/a/2368505/492628