zoukankan      html  css  js  c++  java
  • Android调用WebService

    1. 首先需要包ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar      下载: ksoap.rar

    2. 在androidmanifest中添加访问网络的权限:<uses-permission android:name="android.permission.INTERNET"></uses-permission>

    3. 代码编写:

    public class AndroidWebServiceActivity extends Activity {
    	public final static String NAMESPACE = "http://Services.Jason.TSD/";
    
    	public static String wsdl = "http://192.168.1.6:8080/UserMgrService/UserInfoPort?wsdl";
    	String methodName = "getUserInfo";
    
    	String soupaction = NAMESPACE + "" + methodName;
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    
    		new AsyncTask<Void, Void, Void>() {
    			SoapSerializationEnvelope envelope;
    			@Override
    			protected Void doInBackground(Void... params) {
    				// 指定webservice的命名空间和调用的方法名
    				SoapObject rpc = new SoapObject(NAMESPACE, methodName);
    				System.out.println("rpc" + rpc);
    				//设置调用方法的参数值,如果没有参数,可以省略
    				//rpc.addProperty(“param1”,”value”);
    				
    				//创建HttpTransportsSE对象。通过HttpTransportsSE类的构造方法可以指定WebService的WSDL文档的URL
    				HttpTransportSE ht = new HttpTransportSE(wsdl);
    				ht.debug = true;
    
    				//生成调用Webservice方法的SOAP请求信息
    				envelope = new SoapSerializationEnvelope(
    						SoapEnvelope.VER11);
    
    				envelope.bodyOut = rpc;
    				envelope.dotNet = true;
    				envelope.setOutputSoapObject(rpc);
    
    				try {
    					//使用call方法调用WebService方法
    					ht.call(soupaction, envelope);
    				} catch (IOException e) {
    					System.out.println(2);
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				} catch (XmlPullParserException e) {
    					System.out.println(1);
    					e.printStackTrace();
    				}
    
    				return null;
    			}
    
    			@Override
    			protected void onPostExecute(Void result) {
    				//使用getResponse方法获得WebService方法的返回结果
    				//SoapObject soapObject =( SoapObject) envelope.getResponse();
    				
    				// 获取返回的数据
    				SoapObject result2 = (SoapObject)envelope.bodyIn; 
    				// 获取返回的结果
    				System.out.println(result2.getProperty(0).toString());
    				super.onPostExecute(result);
    			}
    			
    		}.execute();
    
    	}
    }
    

      

  • 相关阅读:
    Qt 学习之路 2(84):Repeater
    MULE-ET0 、 ET1、ET2、PT1、PT2
    linux压缩和解压缩命令
    设置网卡
    打开虚拟机时显示不是有效的虚拟机配置文件是什么原因啊
    VMware设置NAT网络
    ubuntu 自动获取ip的怎么设置
    Qt 学习之路 2(84):Repeater
    Qt Quick里的图形效果:阴影(Drop Shadow)
    N皇后问题
  • 原文地址:https://www.cnblogs.com/lee0oo0/p/2877403.html
Copyright © 2011-2022 走看看