Files
chao-ran-pdaclient/app/src/main/java/com/example/chaoran/RunYmupThread.java

103 lines
2.9 KiB
Java
Raw Normal View History

2020-11-10 01:45:14 +08:00
package com.example.chaoran;
import java.util.HashMap;
import java.util.Map;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import com.chaoran.entiry.DataGrid;
import com.sys.SysData;
import com.util.IoUtil;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
public class RunYmupThread extends Thread {
private String param;
private Handler handler;
private String methodName;
private int urlTy;// 0表示访问ServiceInterface,1表示访问offLineInventoryInterface
public RunYmupThread(String param, Handler handler, String methodName,
int urlTy) {
this.param = param;
this.handler = handler;
this.methodName = methodName;
this.urlTy = urlTy;
}
public void run() {
super.run();
Log.v("SearchThread", "run执行");
try {
String url = null;
if (urlTy == 0) {
url = SysData.url + "/webservice/ServiceInterface?wsdl";
} else if (urlTy == 1) {
url = SysData.url
+ "/webservice/offLineInventoryInterface?wsdl";
}
String method = methodName;
SoapObject rpc = new SoapObject("", method);
if (param != null) {
rpc.addProperty("param", param);
}
HttpTransportSE ht = new HttpTransportSE(url, SysData.timeout);
ht.debug = true;
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);
ht.call("", envelope);
if (envelope.getResponse() != null) {// 判断是否返回结果,因为我这个是一个查询操作,是带有返回值的。
// byte[] bb = org.kobjects.base64.Base64.decode(envelope
// .getResponse().toString());
// Map map= (Map)IoUtil.byte_obj(bb);
// Message msg = new Message();
// msg.obj = map;
// msg.arg1=2;
// handler.sendMessage(msg);
Message msg = new Message();
if (methodName.equals("saveDj")) {
msg.arg1 = 3;
msg.obj = envelope.getResponse().toString();
} else if (methodName.equals("pdaRegister")) {
msg.obj = envelope.getResponse().toString();
} else {
byte[] bb = org.kobjects.base64.Base64.decode(envelope
.getResponse().toString());
msg.obj = IoUtil.byte_obj(bb);
if (methodName.equals("runYmup")) {
msg.arg1 = 2;
} else if (methodName.equals("runTqfa")) {
msg.arg1 = 4;
}
}
handler.sendMessage(msg);
} else {
Message msg = new Message();
msg.obj = null;
handler.sendMessage(msg);
}
} catch (Exception e) {
Message msg = new Message();
if (methodName.equals("runYmup")) {
msg.what = -2;
} else if (methodName.equals("saveDj")) {
msg.what = -3;
} else if (methodName.equals("runTqfa")) {
msg.what = -4;
}else{
msg.what = -1;
}
msg.obj = e.toString();
handler.sendMessage(msg);
}
}
}