第一个android访问java编写的webservice程序

来源:互联网 发布:python贪吃蛇源代码 编辑:程序博客网 时间:2024/05/21 06:02

首先看下Java编写的webservice:

工具:MyEclipse

步骤:1. 菜单栏 –> File –> New –> Web Service Project

            2.在这里,我们使用JAX-WS方式。

            3.编写代码,然后 发布WS(new web service ,myeclipse 工具栏图标),要选择自动生成wsdl文件

            4.导入myeclipse自带的两个JAX-WS jar文件

            5.部署项目,结束

总结:以上操作可以参考网上文档,代码编写跟编写java代码一样,只是其他一些操作全部用工具生成

android中的代码:

import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.ksoap2.SoapEnvelope;import org.ksoap2.SoapFault;import org.ksoap2.serialization.MarshalBase64;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import org.ksoap2.transport.AndroidHttpTransport;import org.xmlpull.v1.XmlPullParserException;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity{private TextView textView;private EditText editText;private Button button;private static final String serviceURL="http://172.20.0.129:7070/UserMgService/UserMgServicePort";@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView=(TextView)findViewById(R.id.textView);editText=(EditText)findViewById(R.id.editText);button=(Button)findViewById(R.id.button);button.setText("获取服务器端数据");button.setOnClickListener(new MyButtonListener());}class MyButtonListener implements OnClickListener{@Overridepublic void onClick(View v){editText.setText(getRemoteInfo());textView.setText("服务器端数据:"+getRemoteInfo());}} public String getRemoteInfo() { String out="11";         // 命名空间         try{        String nameSpace = "http://service.jcy/"; // 调用的方法名称 String methodName = "getPwd"; String endPoint = "http://172.20.0.129:7070/UserMgService/UserMgServicePort";//         String soapAction = "http://service.jcy/getUserInfo"; // 指定WebService的命名空间和调用的方法名 SoapObject rpc = new SoapObject(nameSpace, methodName); // 设置需调用WebService接口需要传入的两个参数mobileCode、userId //rpc.addProperty("mobileCode", phoneSec); //rpc.addProperty("userId", ""); // 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); // 设置是否调用的是dotNet开发的WebService//         envelope.dotNet = true; // 等价于 envelope.bodyOut = rpc; (new MarshalBase64()).register(envelope); AndroidHttpTransport transport=new  AndroidHttpTransport(serviceURL);  transport.debug=true;transport.call(nameSpace+methodName, envelope);if(envelope.getResponse()!=null){   out=envelope.getResponse().toString(); }} catch (SoapFault e){// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e){// TODO Auto-generated catch blocke.printStackTrace();} catch (XmlPullParserException e){// TODO Auto-generated catch blocke.printStackTrace();}           return out; }}