0
我收到一个错误,提示“服务器无法处理请求--->实例失败。”当我尝试使用SOAP webservice上传图片时。使用SOAP webservice将图像上传到服务器
请帮助,因为我卡在这里。
这里是我的代码:
private class UploadImage extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(UploadImageActivity.this);
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(false);
progressDialog.setMessage("Please wait..");
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, baos);
//bMap is the bitmap object
byte[] imagebyte = baos.toByteArray();
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("Email", UserContext.email);
request.addProperty("MobileNo", UserContext.mobilenumber);
request.addProperty("Image", imagebyte);
request.addProperty("Flage_InsertiedBy", UserContext.Flage_InsertiedBy);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
new MarshalBase64().register(envelope);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
webResponse = response.toString();
System.out.println("test response upload " + webResponse);
} catch (Exception e) {
System.out.println("test response upload ex " + e.getMessage());
}
return webResponse;
}
@Override
protected void onPostExecute(String result) {
progressDialog.dismiss();
}
'request.addProperty(“Image”,imagebyte);'。认为你只能发送文本到肥皂服务器。不是字节。编译器会尝试通过将代码转换为'request.addProperty(“Image”,imagebyte.toString());'来创建字符串。但是,然后不会将字节数组的内容作为字符串发送,而是像@ 12345ade这样的字符串,它是数组的Java标识符。请打印imagebyte.toString()来查看。 – greenapps