Image.FromStream错误 - 无法发送动词类型为

时间:2016-02-23 08:02:24

标签: c# http request system.io.file

我在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请求,所以这肯定不能解决这个问题。什么是'正确'解决这个问题的方法是什么?

1 个答案:

答案 0 :(得分:1)

您正在尝试获取GET请求的RequestStream,因为您没有发送任何内容,因此没有任何意义。

您应该使用Response来获取下载图像的流:

   HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(this.Url);
   HttpWebResponse response = (HttpWebResponse)request.GetResponse();
   return response.GetResponseStream();

请注意,调用它的代码会在另一端正确处理流。