Image.FromStream 错误 - 无法发送动词类型的内容正文

Image.FromStream error - cannot send a content body with verb type

我在 C# 中这样做:

Image image = Image.FromStream(fullSizeAppLogo.FileStream);

FileStream 属性 在单独的 class 中定义为:

public System.IO.Stream FileStream
{
        get
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(this.Url);
            return request.GetRequestStream();
        }
}

其中 'this.Url' 是我要检索的图像的 URL。我在这一行收到错误 'Cannot send a content-body with this verb-type':

return request.GetRequestStream();

所以 request.GetRequestStream 似乎是一个 GET 请求,而这一行:

Image.FromStream(fullSizeAppLogo.FileStream)

似乎正在尝试发送内容正文。我不明白为什么 Image.FromStream 会尝试发送内容正文 - 为什么会这样?

通过将我的 'request' 对象的方法更改为 POST 来修复此错误似乎不正确,因为 HttpWebRequest 实际上应该执行 [=35= 的 GET 请求],所以这肯定不是解决问题的有效方法。 'correct' 解决此问题的方法是什么?

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

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

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

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