Я предлагаю отказаться от HttpWebRequest
в пользу WebClient
.Также, если вы отправляете, используя content-type
из application/x-www-form-urlencoded
, сервер будет ожидать, что опубликованные данные будут соответствовать формату key1=value1&key2=value2
.
// sending image to server as base 64 string
string imageBase64String = "YTM0NZomIzI2OTsmIzM0NTueYQ...";
using (WebClient client = new WebClient())
{
var values = new NameValueCollection();
values.Add("image", imageBase64String);
client.UploadValues("http://192.168.1.2/", values);
}
То же самое, но с использованием WebHttpRequest
string imageBase64String = "YTM0NZomIzI2OTsmIzM0NTueYQ...";
HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create("http://192.168.1.2/");
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
string formPostString = "image=" + HttpUtility.UrlEncode(imageBase64String);
byte[] buffer = ASCIIEncoding.ASCII.GetBytes(formPostString);
webRequest.ContentLength = buffer.Length;
using (Stream webStream = webRequest.GetRequestStream())
{
webStream.Write(buffer, 0, buffer.Length);
}
Затем вы можете обработать отправленное изображение на стороне сервера, используя объект HttpRequest.
string imageBase64String = HttpContext.Current.Request.Form["image"];