我正在尝试使用Monodroid上的httpclient将图像发布到我的服务器。 服务器代码没问题,事实上使用Postman一切顺利。
这是我的代码:
var req = new HttpRequestMessage (System.Net.Http.HttpMethod.Post, "http://192.168.0.50:2345/homo");
var content = new MultipartFormDataContent ();
var imageContent = new StreamContent (new FileStream ("my_path.jpg", FileMode.Open, FileAccess.Read, FileShare.Read));
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse ("image/jpeg");
content.Add (imageContent, "image", "image.jpg");
req.Content = content;
await client.SendAsync (req);
当我执行此代码时,在服务器端我得到这个图像:
所以,就像你可以看到的那样,有些东西......但它并不是完整的文件。
你能帮助我吗?
非常感谢!
答案 0 :(得分:1)
HttpClient
缓冲64k,这可能等于另一侧显示的数据。要让它以块的形式发送文件,请执行以下操作:
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.TransferEncodingChunked = true;
var content = new MultipartFormDataContent ();
var imageContent = new StreamContent (new FileStream ("my_path.jpg", FileMode.Open, FileAccess.Read, FileShare.Read));
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse ("image/jpeg");
content.Add(imageContent, "image", "image.jpg");
await httpClient.PostAsync(url, content);
但是,如果您只发送一张图片,则不需要多部分...