android调用webservice接口应用实例
来源:互联网 发布:知乎暨南大学临床医学 编辑:程序博客网 时间:2024/06/05 02:08
一、Webservice接口(使用EJB)
1、接口
package com.zjm.bean;import javax.ejb.Remote;@Remotepublic interface PhoneRemot {public String Hello(String username);}
2、bean
package com.zjm.bean;import javax.ejb.Stateless;import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebService;@Stateless(mappedName="phoneService")@WebService(serviceName="PhoneService",name="PhoneServer")public class PhoneService implements PhoneRemot {@WebMethodpublic String Hello(@WebParam(name = "username") String username) {return "Hello"+ username;}}
二、wsdl接口文件
<?xml version="1.0" encoding="UTF-8" ?>
- <!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.3-07/10/2008 08:41 PM(bt). --> - <!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.3-07/10/2008 08:41 PM(bt). --> - <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://bean.zjm.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://bean.zjm.com/" name="PhoneService">- <types>- <xsd:schema> <xsd:import namespace="http://bean.zjm.com/" schemaLocation="http://127.0.0.1:7001/PhoneService/PhoneService?xsd=1" /> </xsd:schema> </types>- <message name="Hello"> <part name="parameters" element="tns:Hello" /> </message>- <message name="HelloResponse"> <part name="parameters" element="tns:HelloResponse" /> </message>- <portType name="PhoneServer">- <operation name="Hello"> <input message="tns:Hello" /> <output message="tns:HelloResponse" /> </operation> </portType>- <binding name="PhoneServerPortBinding" type="tns:PhoneServer"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> - <operation name="Hello"> <soap:operation soapAction="" /> - <input> <soap:body use="literal" /> </input>- <output> <soap:body use="literal" /> </output> </operation> </binding>- <service name="PhoneService">- <port name="PhoneServerPort" binding="tns:PhoneServerPortBinding"> <soap:address location="http://127.0.0.1:7001/PhoneService/PhoneService" /> </port> </service> </definitions>
三、Android客户端
1、加入ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar
注意要放在libs文件夹中2、AndroidManifest.xml配置文件
<uses-permissionandroid:name="android.permission.INTERNET" /> 增加网络访问权限3、代码
public void onClick(View view) {EditText username = (EditText) findViewById(R.id.edtusername);TextView txtResult= (TextView) findViewById(R.id.txtResult);Object result = null;String url = "http://10.88.99.12:7001/PhoneService/PhoneService?wsdl";String nameSpace = "http://bean.zjm.com/";String method = "Hello";Map<String, Object> params = new HashMap<String, Object>();params.put("username", username.getText().toString().trim());result = getResult(nameSpace, method, url, params);txtResult.setText(result.toString());}/** * 调取WebService接口得到结果 * @param namespace WebService的命名空间 * @param method WebService所发布的方法 * @param url 服务器发布的 url * @param params 参数 * @return */public static Object getResult(String nameSpace, String method,String url, Map<String, Object> params) {String SOAP_ACTION = nameSpace + method;// 实例化SoapObject对象,并指定命名空间和方法名SoapObject request = new SoapObject(nameSpace, method);// 设置调用参数方法,包括参数名称和参数值Set keySet = params.keySet();// 返回键的Iterator it = keySet.iterator();while (it.hasNext()) { // 第一种迭代体式格式取键值Object key = it.next();request.addProperty(key.toString(), params.get(key));}// 设置SOAP请求信息(参数部分为SOAP协议版本号,与你要调用到的WEBSERVICE中的版本号一致)SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);envelope.bodyOut = request; //webservic接口是否为.net注意若设错,接口会得不到参数envelope.dotNet = false;envelope.setOutputSoapObject(request);HttpTransportSE ht = new HttpTransportSE(url);try {// 调用webservice(其中参数一SOAP_ACTION为命名空间+方法名,参数二为envelope)ht.call(SOAP_ACTION, envelope);} catch (IOException e) {Log.e("IOException:", e.getMessage());// androidHT.reset();} catch (XmlPullParserException e1) {Log.e("XmlPullParserException", e1.getMessage());} catch (IllegalStateException e2) {Log.e("IllegalStateException", e2.getMessage());}try {// 使用getResponse方法获得WebService方法的返回结果return (Object)envelope.getResponse();} catch (SoapFault e) {e.printStackTrace();}return null;}
0 0
- android调用webservice接口应用实例
- webservice接口调用实例
- android 调用webservice 接口
- android调用WebService接口
- 【实例】C++调用webservice接口
- Android通过WebService调用接口
- Android通过WebService调用接口
- vtiger CRM 二次开发接口Webservice调用实例
- java使用axis2调用webservice接口实例
- webservice接口简单实例及调用
- webservice通信调用天气预报接口实例
- java使用axis2调用webservice接口实例
- webservice通信调用天气预报接口实例
- webservice通信调用天气预报接口实例
- 【webservice】调用webservice接口
- WebService应用-ABAP实例:ABAP调用外部WebService
- Android开发中webService接口调用示例
- Android 通过WebService调用天气预报接口
- (ljb.h)邻接表
- layoutSubviews总结
- World Wind Java开发之十四——添加WMS地图服务资源
- warning:performSelector may cause a leak because its selector
- HTTP POST GET 本质区别详解
- android调用webservice接口应用实例
- Page分页
- OC面向对象编程基础总结
- android 开发工具集合
- hdu 1227 简单dp+中位数的性质
- 彻底解决INSTALL_FAILED_UPDATE_INCOMPATIBLE的安装错误
- 图的深度优先搜索/广度优先搜索(邻接表实现)
- 大批量数据导入数据库,dbf导入oracle,csv导入oracle
- Linux系统安装