`
836811384
  • 浏览: 545919 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

首先看下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";
	@Override
	protected 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
	{

		@Override
		public 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 block
			e.printStackTrace();
		} catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (XmlPullParserException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
         return out;
	 }
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics