先后调用webserivce的两个方法 直接在第一个webservice调用成功后,if else判断结果 继续调用第二个。一个线程应该是够了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 支持下1#我目前手头项目是基于phonegap开发,里面也涉及到调用webservice基本思路像1#所说,我的界面用html5写的,使用ajax调用webservice:$.ajax({//调第一个 。 success: function (data, textStatus) { if(....){//在某个条件情况下调用第二个 $.ajax({ 。 success: function (data, textStatus) {} } } 现在是这么调用,所以没想明白怎么取得方法1的结果后再执行方法2,帮忙优化下:strMethodName=“方法1";StartThread();strMethodName=“方法2";StartThread();private String strMethodName; private void StartThread() throws Exception { new Thread(MyGetInfo).start(); }Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); try{ Bundle data = msg.getData(); String result = data.getString("value"); if (msg.obj.toString().equalsIgnoreCase("方法1")){ //取得结果 } else if (msg.obj.toString().equalsIgnoreCase("方法2")) { //取得结果 } } catch (Exception e) { } } };Runnable MyGetInfo = new Runnable() { @Override public void run() { String result = ""; try { //命名空间 String nameSpace = "http://test.com/"; //调用的方法名称 String methodName = strMethodName; //EndPoint String endPoint = "http://" + ServerIp + ":13188/Service.asmx"; //SOAP Action String soapAction = nameSpace + strMethodName; //指定WebService的命名空间和调用的方法名 SoapObject rpc = new SoapObject(nameSpace, methodName); //生成调用WebService方法的SOAP请求信息,并指定SOAP的版本 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12); envelope.encodingStyle = "UTF-8"; envelope.bodyOut = rpc; //设置是否调用的是dotNet开发的WebService envelope.dotNet = true; envelope.bodyOut = rpc; //等价于envelope.bodyOut = rpc; //envelope.setOutputSoapObject(rpc); HttpTransportSE transport = new HttpTransportSE(endPoint); //transport.debug = true; // 调用WebService transport.call(soapAction, envelope); // 获取返回的数据 SoapObject object = (SoapObject) envelope.bodyIn; // 获取返回的结果 result = object.getProperty(0).toString(); } catch (Exception e) { result = "error:" + e.toString(); } finally { Message msg = new Message(); Bundle data = new Bundle(); data.putString("value",result); msg.setData(data); msg.obj = strMethodName; handler.sendMessage(msg); } } }; 按钮事件中,开启线程调用webservice,如何if else... 除非重复那一堆代码,transport.call(soapAction, envelope); 两次 求android内存释放 方法 TabActivity 传参数 java程序创建android布局文件的问题 编译android配置文件 Android 中如何得到字符的像素宽度。求各位大侠鼎力相助。 Listview刷新问题 手机QQ这类手机软件是用什么计算机语言编写的 移动应用服务器端开发用的框架 我想使我的手机有root 权限. 但操作时,有以下提示,请问如何解决? include c++ support怎么没有了 ubuntu下加载驱动Invalid module format错误 AlertDialog为什么不能通过new得到一个AlertDialog对象
我目前手头项目是基于phonegap开发,里面也涉及到调用webservice
基本思路像1#所说,我的界面用html5写的,
使用ajax调用webservice:
$.ajax({//调第一个
。
success: function (data, textStatus) {
if(....){//在某个条件情况下调用第二个
$.ajax({
。
success: function (data, textStatus) {}
}
}
strMethodName=“方法1";
StartThread();
strMethodName=“方法2";
StartThread();
private String strMethodName; private void StartThread() throws Exception
{
new Thread(MyGetInfo).start();
}Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
try{
Bundle data = msg.getData();
String result = data.getString("value");
if (msg.obj.toString().equalsIgnoreCase("方法1")){
//取得结果
}
else if (msg.obj.toString().equalsIgnoreCase("方法2")) {
//取得结果
}
}
catch (Exception e)
{
}
}
};Runnable MyGetInfo = new Runnable()
{
@Override
public void run()
{
String result = "";
try
{
//命名空间
String nameSpace = "http://test.com/";
//调用的方法名称
String methodName = strMethodName;
//EndPoint
String endPoint = "http://" + ServerIp + ":13188/Service.asmx";
//SOAP Action
String soapAction = nameSpace + strMethodName;
//指定WebService的命名空间和调用的方法名
SoapObject rpc = new SoapObject(nameSpace, methodName);
//生成调用WebService方法的SOAP请求信息,并指定SOAP的版本
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
envelope.encodingStyle = "UTF-8";
envelope.bodyOut = rpc;
//设置是否调用的是dotNet开发的WebService
envelope.dotNet = true;
envelope.bodyOut = rpc;
//等价于envelope.bodyOut = rpc;
//envelope.setOutputSoapObject(rpc);
HttpTransportSE transport = new HttpTransportSE(endPoint);
//transport.debug = true;
// 调用WebService
transport.call(soapAction, envelope);
// 获取返回的数据
SoapObject object = (SoapObject) envelope.bodyIn;
// 获取返回的结果
result = object.getProperty(0).toString();
}
catch (Exception e)
{
result = "error:" + e.toString();
}
finally
{
Message msg = new Message();
Bundle data = new Bundle();
data.putString("value",result);
msg.setData(data);
msg.obj = strMethodName;
handler.sendMessage(msg);
}
}
};