我对溪流不是很熟悉,但谷歌搜索得到了一些代码,但它不起作用。我想将图像上传到接受多部分帖子的服务器 这是我的代码,它不工作,我不知道它是否正确。请指导
MemoryStream stream;
using ( stream = new MemoryStream())
{
using (var writer = new StreamWriter(stream))
{
writer.Write("multipart/form-data; boundary=---------------------------" + ak);
if (image_path1.ToLower().Contains("png"))
{
writer.Write("Content-Disposition: form-data;");
writer.Write("name=img;");
writer.Write("filename="+name+";");
writer.Write("Content-Type: image/png");
}
else
{
writer.Write("Content-Disposition: form-data;");
writer.Write("name=img;");
writer.Write("filename=" + name + ";");
writer.Write("Content-Type: image/jpeg");
}
writer.Flush();
var file1 = File.ReadAllBytes(image_path1);
stream.Write(file1, 0, file1.Length);
// stream.Flush();
}
}
接下来我甚至不知道如何发布它,对于正常的帖子我使用像这样
string response = client.Post(domain, post_string);
我必须创建这样的请求http://prntscr.com/1gje7l 和函数是http://prntscr.com/1gjefr
答案 0 :(得分:3)
HttpClient
方法PostAsync
接受HttpContent
个对象。
你可以像这样使用它:
using(var f = System.IO.File.OpenRead(@"F:\test.html"))
{
var client = new HttpClient();
var content = new StreamContent(f);
var mpcontent = new MultipartFormDataContent();
content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
mpcontent.Add(content);
await client.PostAsync("http://ya.ru", mpcontent);
}
您无需手动管理标题,边界等