Android调用C# .net 的WebService接口
16lz
2021-01-26
这是在项目中遇到的,公司的后台是用C# .net写的,在Android设备中调用后台接口。
这里我们需要引用一个第三方的jar包,ksoap2,大家可以百度一下,然后把它添加到我们的Android工程中。
需要注意的地方:
- 权限一定要开,需要访问网络
- 访问网络需要在非主线程中访问
然后就是接下来的代码:
//访问空间,由于当时是本地测试,默认都是"http://tempuri.org/" String nameSpace = "http://tempuri.org/"; //访问方法名称 String methodName ="Login"; final String URL = "http://192.168.0.123/AppService/Service.asmx"; final String soapAction = "http://tempuri.org/Login"; final SoapObject soapObject = new SoapObject(nameSpace,methodName); //此处的参数,是要访问接口时需要传入的参数,键值对形式 soapObject.addProperty("userName","admin"); soapObject.addProperty("password",""); // 这里的版本"SoapEnvelope.VER10",可以在11,12,之间测试,看自己需要哪个 final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10); envelope.bodyOut = soapObject; // 后台用.net写,这个一定要有 envelope.dotNet = true; envelope.setOutputSoapObject(soapObject); final HttpTransportSE transport = new HttpTransportSE(URL); new Thread(new Runnable() { @Override public void run() { try { //这里调用Call方法访问网络,在子线程中进行 transport.call(soapAction, envelope); // 获取响应,此处ksoap已经把返回结果以对象的形式给我们,直接调用即可 final SoapPrimitive result = (SoapPrimitive) envelope.getResponse(); System.out.println("*********************"); System.out.println(result.toString()); } catch (Exception e) { e.printStackTrace(); } } }).start();
更多相关文章
- iOS后台机制
- Android(安卓)RxJava 实际应用讲解:网络请求嵌套回调
- 网络编程之——他山之石OkHttp
- Android中实现程序前后台切换效果。
- Grnymotion模拟器和Android真机访问PC端Tomcat下的应用
- Android(安卓)Async HTTP Clients: Volley vs Retrofit
- android中图片的三级cache策略(内存、文件、网络)之二:内存缓存策略
- Android开发笔记(一百七十一)使用Glide加载网络图片
- android G1蓝牙与无线网络,APN接入点设置