80,351
社区成员
发帖
与我相关
我的任务
分享
/* WebService方式上传 */
public boolean uploadFile2WebSvr(String filePath){
boolean result = false;
try {
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[(int)file.length()];
int count = 0;
while((count = fis.read(buffer)) >= 0){
baos.write(buffer, 0, count);
}
String uploadBuffer = new String(Base64.encodeBase64(buffer)); //进行Base64编码
connectWebService(uploadBuffer); //调用webservice
Log.i("connectWebService", "start");
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
private boolean connectWebService(String imageBuffer) {
// 命名空间,即服务器端得接口,注:后缀没加 .wsdl
boolean r = false;
String namespace = "http://method.service.com";
String url = "http://192.168.1.236:8080/axis2/services/Upload"; //对应的url
String methodName = "UpdateImage";
//以下就是 调用过程了,不明白的话 请看相关webservice文档
SoapObject request = new SoapObject(namespace, methodName);
request.addProperty("name", "aaa.jpg");
request.addProperty("image", imageBuffer); //参数2 图片字符串
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// envelope.dotNet = false;
envelope.setOutputSoapObject(request);
AndroidHttpTransport httpTranstation = new AndroidHttpTransport(url);
try {
httpTranstation.call(namespace, envelope);//说是这里出错
SoapObject result = (SoapObject) envelope.getResponse();
r = Boolean.valueOf(result.getProperty("return").toString());
// Object result = envelope.getResponse();
Log.i("connectWebService", result.toString());
} catch (Exception e) {
e.printStackTrace();
}
return r;
}
02-29 02:51:22.341: W/System.err(683): SoapFault - faultcode: 'soapenv:Server' faultstring: 'org.apache.commons.codec.binary.Base64.decodeBase64(Ljava/lang/String;)[B' faultactor: 'null' detail: org.kxml2.kdom.Node@45054f90
02-29 02:51:22.341: W/System.err(683): at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:112)
02-29 02:51:22.341: W/System.err(683): at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137)
02-29 02:51:22.341: W/System.err(683): at org.ksoap2.transport.Transport.parseResponse(Transport.java:63)
02-29 02:51:22.341: W/System.err(683): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)
02-29 02:51:22.341: W/System.err(683): at com.wk.photograph.Upload.connectWebService(Upload.java:287)
02-29 02:51:22.341: W/System.err(683): at com.wk.photograph.Upload.uploadFile2WebSvr(Upload.java:257)
02-29 02:51:22.341: W/System.err(683): at com.wk.photograph.Upload$2.onClick(Upload.java:185)
02-29 02:51:22.341: W/System.err(683): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
02-29 02:51:22.341: W/System.err(683): at android.os.Handler.dispatchMessage(Handler.java:99)
02-29 02:51:22.341: W/System.err(683): at android.os.Looper.loop(Looper.java:123)
02-29 02:51:22.341: W/System.err(683): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-29 02:51:22.352: W/System.err(683): at java.lang.reflect.Method.invokeNative(Native Method)
02-29 02:51:22.352: W/System.err(683): at java.lang.reflect.Method.invoke(Method.java:521)
02-29 02:51:22.352: W/System.err(683): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-29 02:51:22.352: W/System.err(683): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-29 02:51:22.352: W/System.err(683): at dalvik.system.NativeStart.main(Native Method)