0

我在使用 WebAPI 获取请求内容时遇到问题。我正在使用 .NET 4 解决方案并希望保存来自客户端的图像。

客户端代码是

var request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = WebRequestMethods.Http.Post;
using (var stream = request.GetRequestStream())
{
  File.OpenRead(@"C:\Users\dylan_000\Pictures\image.png").CopyTo(stream);
  stream.Flush();
}
var response = request.GetResponse();

WebApi 方法如下所示

public Task<bool> Image()
{
  return Request.Content.ReadAsStreamAsync().ContinueWith<bool>(t =>
    {
        using (var writer = File.Create("this was uploaded.png"))
                        {
                            (t.Result as Stream).CopyTo(ms);
                            writer.Flush();
                        }
        return true;
    });
}

流的大小不匹配,保存的图像无效。

上面粘贴的代码足以复制我的情况,显然有更好的方法来保存图像,但在我的情况下,它会用于进一步处理。

任何帮助将不胜感激。

4

2 回答 2

0

我无法重现您的问题。顺便说一句,我在尝试之前修改了以下突出显示的代码。这里的“女士”是什么?听起来像内存流?

(t.Result as Stream).CopyTo( writer );

于 2013-06-03T18:53:45.230 回答
0

教训在这里,为了绕过授权,我手动将 cookie 插入到请求中。看来我在做这件事上是吝啬的,这就是问题的原因。对于想要使用 WebAPI 上传图片的任何人,上面的代码都可以正常工作。(请务必保持请求清洁)

于 2013-06-03T19:07:04.827 回答