我發送的字節[]和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正確獲取數據,但它不是字符串轉換回圖像..請參閱有關 –