我发送的字节[]和3串的图像到web服务usingksoap但它不是为我工作,我不知道我在哪里错了,从发送图像Android和在接收端,我在这里将代码查收它 这里是我如何转换图像在客户端为byte [](机器人)侧发送以Base64字符串图像,并通过KSOAP
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
myBitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
和这里是代码,其中i通过KSOAP
我把它发送到Web服务和这里是我收到这个SOAP信封
[WebMethod]
public String PutFile(String Name, String Email, String Picture, String Date)
{
String PictureByteString = Picture;
Image imgFromString = SaveByteArrayAsImage(PictureByteString);
DateTime.Now.ToShortDateString() + ".jpg"));
string serverpath = Server.MapPath("~/" + Email + "-" + DateTime.Now.ToShortDateString());
imgFromString.Save(serverpath, System.Drawing.Imaging.ImageFormat.Jpeg);
String Path = serverpath + ".Jpeg";
return Name;
}
private Image SaveByteArrayAsImage(string base64String)
{
byte[] bytes = Convert.FromBase64String(base64String);
image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
return image;
}
将WebMethod当我将数据发送到web服务的Android logcat的显示我
java.io.IOException: HTTP request failed, HTTP status: 500
我是这么认为的,这意味着数据我是发送到web服务是不正确的类型,所以我试图在webmethod String Picture
到byte[] Picture
但结果是一样的。我不能够揣摩出我错了......
更新: 现在发送图像中的Base64编码字符串和Java异常消失,但将WebMethod仍然不是Base64编码字符串转换为图像.. 。
500 meance服务器不连接,你需要先尝试不通过图像,如果它的工作,然后通过图像,如果你用base64甲发送图像,然后它的更好,然后的byte [] – PankajAndroid
让我尝试没有图像通过图像... 。 –
@PankajAndroid:我删除了这一行“new MarshalBase64()。register(envelope);”并添加了“字符串编码= Base64.encodeToString(byteArray,Base64.DEFAULT);”转换的byte []到b中ase64字符串,异常现在已经和的WebMethod正确获取数据,但它不是字符串转换回图像..请参阅有关 –