我在C#中执行此操作:
Image image = Image.FromStream(fullSizeAppLogo.FileStream);
FileStream属性在单独的类中定义为:
public System.IO.Stream FileStream
{
get
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(this.Url);
return request.GetRequestStream();
}
}
在哪里' this.Url'是我尝试检索的图片的网址。我收到错误'无法使用此动词类型'发送内容正文:
return request.GetRequestStream();
所以似乎request.GetRequestStream是一个GET请求,而这一行:
Image.FromStream(fullSizeAppLogo.FileStream)
似乎正在尝试发送内容正文。我不明白为什么Image.FromStream会尝试发送内容正文 - 为什么会出现这种情况呢?
通过更改我的请求'的方法来解决此错误似乎不对。对象是POST,因为HttpWebRequest实际上应该对URL做一个GET请求,所以这肯定不能解决这个问题。什么是'正确'解决这个问题的方法是什么?
答案 0 :(得分:1)
您正在尝试获取GET请求的RequestStream,因为您没有发送任何内容,因此没有任何意义。
您应该使用Response来获取下载图像的流:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(this.Url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
return response.GetResponseStream();
请注意,调用它的代码会在另一端正确处理流。