I am trying to send from android and get from .net page, I can get string parameter but I have difficult time getting byte array.
ANDROID
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(urls[0]);
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
entityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
entityBuilder.addTextBody("X", "Y");
File photo= new File(Environment.getExternalStorageDirectory(), "photo.jpg");
if(photo != null)
{
entityBuilder.addBinaryBody("IMAGE", photo);
}
HttpEntity entity = entityBuilder.build();
post.setEntity(entity);
HttpResponse response = client.execute(post);
HttpEntity httpEntity = response.getEntity();
String result = EntityUtils.toString(httpEntity);
.NET
byte[] bitmap = (byte[])Request.Params["IMAGE"];
using (System.Drawing.Image image = System.Drawing.Image.FromStream(new MemoryStream(bitmap)))
{
image.Save(@"C:/output.jpg", ImageFormat.Jpeg);
}
TRY 1
byte[] bitmap = GetBytes(Request.Form["IMAGE"]);
Log("HERE");
using (System.Drawing.Image image = System.Drawing.Image.FromStream(new MemoryStream(bitmap)))
{
Log("Save 1");
image.Save(@"C:/doka/output.jpg", ImageFormat.Jpeg); // Or Png
Log("Save 2");
}
}
static byte[] GetBytes(string str)
{
Log("GetBytes 1");
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
Log("GetBytes 2");
return bytes;
}