Android调用.net ASMX Service
2012-05-21 22:02
176 查看
折腾了两天时间,终于把这个搞定了。在这期间也学习了很多东西。万事开头难啊。
1. 新建一个安卓项目,下载ksoap2-android-assembly-2.4-jar-with-dependencies.jar(138m).并加载到工程libraries中,然后还需要在Order and Export中选中这个包。具体来说就是:选中工程->Java Build Path->选中标签Order and Export->选中没有找到的class的jar包或者包含的工程->点击OK。如果不做这一步,会出现莫名异常,调用永远不会成功。这个东西耽误了我很长时间。后来问了蝈蝈大神才知道是怎么回事。
2. 由于android默认是禁用soket所以在开始之前需要修改AndroidManifest.xml。添加:<uses-permission android:name="android.permission.INTERNET" />
3.我自己把调用的地方封装了一下,以后可以直接使用:
4.使用方法
xst就是最后的结果
1. 新建一个安卓项目,下载ksoap2-android-assembly-2.4-jar-with-dependencies.jar(138m).并加载到工程libraries中,然后还需要在Order and Export中选中这个包。具体来说就是:选中工程->Java Build Path->选中标签Order and Export->选中没有找到的class的jar包或者包含的工程->点击OK。如果不做这一步,会出现莫名异常,调用永远不会成功。这个东西耽误了我很长时间。后来问了蝈蝈大神才知道是怎么回事。
2. 由于android默认是禁用soket所以在开始之前需要修改AndroidManifest.xml。添加:<uses-permission android:name="android.permission.INTERNET" />
3.我自己把调用的地方封装了一下,以后可以直接使用:
package gs.utils; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; public class AsmxUtil { private String SOAP_ACTION = ""; private String NAMESPACE = "http://tempuri.org/"; private String METHOD_NAME = ""; private String ServiceURL = ""; SoapObject request =null; public AsmxUtil(String serviceurl, String methodName) { ServiceURL = serviceurl; METHOD_NAME = methodName; SOAP_ACTION = NAMESPACE + METHOD_NAME; request = new SoapObject(NAMESPACE, METHOD_NAME); } public void AddProperty(String name, Object v) { request.addProperty(name, v); } public String Call() throws Exception { SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.bodyOut = request; envelope.dotNet=true; HttpTransportSE ht = new HttpTransportSE(ServiceURL); ht.debug = true; try { ht.call(SOAP_ACTION, envelope); if (envelope.getResponse() != null) { String msg = envelope.getResponse().toString(); return msg; } else { return ""; } } catch (Exception e) { throw new Exception(e.getMessage()); } } }
4.使用方法
AsmxUtil au = new AsmxUtil("http://192.168.1.105:92/MyWebService.asmx", "DoubleNum"); au.AddProperty("a", 111); String xst = null; try { xst = au.Call(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
xst就是最后的结果
相关文章推荐
- 调试通过的android手机调用网上.net web service的例子
- Android调用asp.net编写的*.ashx(一般处理程序)获取数据
- cxf 调用 .net webservice 出现服务器未能识别 HTTP 标头 SOAPAction 的值 解决方案
- android跨进程调用Service(AIDL服务)
- 你是否觉得.Net Web Service 中asmx文件是多余的?---客户端调用
- Android开发学习笔记:Service的远程调用
- android Service 基本创建调用和绑定
- 在Salesforce中向外公布Service去创建Lead,并且用Asp.Net去调用此Service
- Android(java)学习笔记228:服务(service)之绑定服务调用服务里面的方法
- Android 在Service中调用Activity
- android基础笔记:服务(Service) 采用接口的方式调用本地服务的方法
- Android Service 的使用(四)----进程间的Service的调用
- Android Activity/Service/Broadcaster三大组件之间互相调用
- android callRemoteService 调用其他进程的service
- android开发教程:如何调用bindService绑定?
- Android 学习历程之二 如何在一个Service中调用Activity(Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
- Java调用.NetWeb Service
- android service bindService onServiceConnected没有调用
- Android学习之远程绑定调用service
- MS CRM Callouts Tip - 调用WCF service in CRM 3 Callouts (.net 1.1)