上传图像到WebAPI而不使用表单
本文关键字:表单 WebAPI 图像 | 更新日期: 2023-09-27 18:16:33
我在获取请求内容时遇到了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;
});
}
流的大小不匹配,保存的图像无效。
上面粘贴的代码足以复制我的情况,显然有更好的方法来保存图像,但在我的情况下,它会被进一步处理。
我无法重现您的问题。顺便说一句,在尝试之前,我修改了以下突出显示的代码。这里的"ms"是什么?听起来像记忆流?
(t。结果流).CopyTo (作家);
我学到了教训,为了绕过授权,我手动将cookie插入请求。看来我做这件事很笨,这就是问题的原因。对于任何想要用WebAPI上传图像的人来说,上面的代码都可以正常工作。(一定要保持请求的简洁)