我在获取请求内容方面遇到了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;
});
}
流的大小不匹配,保存的图像无效。
上面粘贴的代码足以复制我的情况,显然有更好的方法来保存图像,但在我的情况下它会进行进一步处理。
非常感谢任何帮助。
答案 0 :(得分:0)
我无法重复您的问题。顺便说一下,我在尝试之前修改了以下突出显示的代码。这里的'ms'是什么?听起来像记忆流?
(t.Result as Stream).CopyTo(作家);
答案 1 :(得分:0)
这里的课程倾斜, 为了绕过授权,我手动将cookie插入到请求中。看起来我在做这个时就被火腿吝啬了,这就是问题的原因。对于想要使用WebAPI上传图像的任何人,上面的代码都可以正常工作。 (请务必保持请求清洁)