С#: Post запрос multipart/form-data
Необходимо отправить запрос с массивом байт, полученных с картинки:
private static void sendFile(byte[] bytes, String url)
{
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = WebRequestMethods.Http.Post;
request.KeepAlive = true;
request.Credentials = System.Net.CredentialCache.DefaultCredentials;
request.Timeout = 120000;
string boundary = "--------" + DateTime.Now.Ticks.ToString("x");
request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;
MemoryStream ms = new MemoryStream();
StreamWriter sw = new StreamWriter(ms);
sw.Write("\r\n--" + boundary + "\r\n");
sw.Write("Content-Disposition: form-data;"
+ "name=\"{0}\";"
+ "filename=\"{1}\""
+ "\r\nContent-Type: {2}\r\n\r\n",
"imagefile",
"image.jpg",
"image");
sw.Flush();
ms.Write(bytes, 0, bytes.Length);
sw.Write("\r\n--" + boundary + "--\r\n");
sw.Flush();
request.ContentLength = ms.Length;
System.IO.Stream sendStream = request.GetRequestStream();
ms.WriteTo(sendStream);
ms.Close();
WebResponse response = request.GetResponse();
}
catch (WebException e)
{
Console.WriteLine(e);
System.Windows.Forms.MessageBox.Show("Error= " + e);
}
catch (Exception e) {
Console.WriteLine(e);
System.Windows.Forms.MessageBox.Show("Error= " + e);
}
}
{
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = WebRequestMethods.Http.Post;
request.KeepAlive = true;
request.Credentials = System.Net.CredentialCache.DefaultCredentials;
request.Timeout = 120000;
string boundary = "--------" + DateTime.Now.Ticks.ToString("x");
request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;
MemoryStream ms = new MemoryStream();
StreamWriter sw = new StreamWriter(ms);
sw.Write("\r\n--" + boundary + "\r\n");
sw.Write("Content-Disposition: form-data;"
+ "name=\"{0}\";"
+ "filename=\"{1}\""
+ "\r\nContent-Type: {2}\r\n\r\n",
"imagefile",
"image.jpg",
"image");
sw.Flush();
ms.Write(bytes, 0, bytes.Length);
sw.Write("\r\n--" + boundary + "--\r\n");
sw.Flush();
request.ContentLength = ms.Length;
System.IO.Stream sendStream = request.GetRequestStream();
ms.WriteTo(sendStream);
ms.Close();
WebResponse response = request.GetResponse();
}
catch (WebException e)
{
Console.WriteLine(e);
System.Windows.Forms.MessageBox.Show("Error= " + e);
}
catch (Exception e) {
Console.WriteLine(e);
System.Windows.Forms.MessageBox.Show("Error= " + e);
}
}