直接上代码:

写一个Bean,封装数据

package com.mbl.wbsconn;import java.util.List;import java.util.Map;public class BaseBean {protected String usid;protected String pwd;protected String error;protected String msgtp;protected String logonstatus;protected  List<Map> nodes=null;public String getMsgtp() {return msgtp;}public void setMsgtp(String msgtp) {this.msgtp = msgtp;}public String getUsid() {return usid;}public void setUsid(String usid) {this.usid = usid;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public String getError() {return error;}public void setError(String error) {this.error = error;}public String getLogonstatus() {return logonstatus;}public void setLogonstatus(String logonstatus) {this.logonstatus = logonstatus;}public List<Map> getNodes() {return nodes;}public void setNodes(List<Map> nodes) {this.nodes = nodes;}}

package com.mbl.wbsconn;import java.io.IOException;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import org.xmlpull.v1.XmlPullParserException;import android.util.Log;public class MyWebService {private static final String Tag = "MyWebService";protected static final String NAMESPACE = "http://127.0.0.1";protected static final String SOAP_ACTION = "http://127.0.0.1";// 与服务端的nameSpace要一致(默认为反向包名)private String nameSpace = NAMESPACE;// 与服务端的nameSpace要一致(默认为反向包名)private String soap_action = SOAP_ACTION;private HttpTransportSE httpTransportSE;public MyWebService(String nameSpace, String soap_action, String wsdlUrl) {super();this.nameSpace = nameSpace;this.soap_action = soap_action;httpTransportSE = new HttpTransportSE(wsdlUrl, 10000);}public String getNameSpace() {return nameSpace;}public String getSoap_action() {return soap_action;}public HttpTransportSE getHttpTransportSE() {return httpTransportSE;}public Object invoke(String methodNmae, WebserviceProperty... properties)throws IOException, XmlPullParserException {return invoke(methodNmae, SoapEnvelope.VER11, false, false, properties);}public Object invoke(String methodNmae, int version, boolean dotNet,boolean debug, WebserviceProperty... properties)throws IOException, XmlPullParserException {SoapObject soapObject = new SoapObject(nameSpace, methodNmae);if (properties != null) {for (WebserviceProperty webserviceProperty : properties) {soapObject.addProperty(webserviceProperty.getName(),webserviceProperty.getValue());}Log.i(Tag, "soapObject --- " + soapObject.toString());}SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(version);envelope.bodyOut = soapObject;envelope.dotNet = dotNet;envelope.setOutputSoapObject(soapObject);httpTransportSE.debug = debug;httpTransportSE.call(soap_action, envelope);// soapObject = (SoapObject) envelope.bodyIn;Object obj = envelope.getResponse();return obj;}
  
<pre name="code" class="html">
package com.mbl.wbsconn;import org.ksoap2.SoapEnvelope;import android.util.Log;/** * webservice 处理类 *  * @author Administrator */public class WebserviceHandle {private static final String Tag = "WebserviceHandle";public static String urlWebString = Sysconfig._urlWebString;public static String url = Sysconfig._url;public static String nameSpace = Sysconfig._nameSpace;public static String soap_action = Sysconfig._soap_action;public static String webXml = "";public WebserviceHandle() {// TODO Auto-generated constructor stub}/** *  * @param method * @param param * @return * @throws Exception * @date 2013-10-22 下午5:00:57 */public static String getWebserviceXml(String method, Object[][] param)throws Exception {MyWebService service = new MyWebService(nameSpace, soap_action, url);/* * WebserviceProperty property = new WebserviceProperty(); * property.setName("usid"); property.setValue("lxsyg01"); *//* * WebserviceProperty property1 = new WebserviceProperty(); String pass * = "11111111"; pass = Tools.md5Encode(pass); property1.setName("pwd"); * property1.setValue(pass); */WebserviceProperty[] pro = new WebserviceProperty[param.length];for (int i = 0; i < param.length; i++) {WebserviceProperty property = new WebserviceProperty();property.setName(param[i][0].toString());property.setValue(param[i][1]);pro[i] = property;}Object obj = null;obj = service.invoke(method, SoapEnvelope.VER11, true, true, pro);// System.out.println("webserviceHandler --- "+obj.toString());return obj.toString();}public static String getWebserviceXml(String method, String methodCode,String[] param, String md5str) throws Exception {Log.i(Tag, "url --- " + url);Log.i(Tag, "nameSpace --- " + nameSpace);Log.i(Tag, "soap_action --- " + soap_action);MyWebService service = new MyWebService(nameSpace, soap_action, url);/* * WebserviceProperty property = new WebserviceProperty(); * property.setName("usid"); property.setValue("lxsyg01"); *//* * WebserviceProperty property1 = new WebserviceProperty(); String pass * = "11111111"; pass = Tools.md5Encode(pass); property1.setName("pwd"); * property1.setValue(pass); */WebserviceProperty[] pro = new WebserviceProperty[3];WebserviceProperty property = new WebserviceProperty("method",methodCode);pro[0] = property;StringBuffer paramter = new StringBuffer();for (int i = 0; i < param.length; i++) {paramter.append(param[i]);if (i < param.length - 1) {paramter.append("|");}}WebserviceProperty property1 = new WebserviceProperty("params",paramter.toString());// admin|12345pro[1] = property1;WebserviceProperty property2 = new WebserviceProperty("md5str", "");pro[2] = property2;Object obj = null;obj = service.invoke(method, SoapEnvelope.VER11, true, true, pro);// System.out.println("webserviceHandler --- "+obj.toString());return obj.toString();}}

}

  
package com.mbl.wbsconn;public class WebserviceProperty {private String name;//参数名private Object value;//参数值public WebserviceProperty() {//System.out.println("WebserviceProperty A  ========================");//super();}public WebserviceProperty(String name, Object value) {//System.out.println("WebserviceProperty B  ========================");//super();this.name = name;this.value = value;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Object getValue() {return value;}public void setValue(Object value) {this.value = value;}}


解析XML
package com.mbl.wbsconn;import java.io.ByteArrayInputStream;import java.io.InputStream;import java.io.StringWriter;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.sax.SAXTransformerFactory;import javax.xml.transform.sax.TransformerHandler;import javax.xml.transform.stream.StreamResult;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;public class ObjectParse  {public static BaseBean XmlToObject(String xml) throws Exception {SAXParserFactory factory = SAXParserFactory.newInstance(); // 取得SAXParserFactory实例SAXParser parser = factory.newSAXParser(); // 从factory获取SAXParser实例MyHandler handler = new MyHandler(); // 实例化自定义HandlerInputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));parser.parse(is, handler); // 根据自定义Handler规则解析输入流return handler.getBaseModel();}public static String ObjectToXml(BaseBean baseModel) throws Exception {SAXTransformerFactory factory = (SAXTransformerFactory) TransformerFactory.newInstance();// 获取SaxTransformerFactory实例TransformerHandler handler = factory.newTransformerHandler();// 从factory获取handler实例Transformer transformer = handler.getTransformer();// 从handler中获取transformer实例transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); // 设置输出采用的编码方式transformer.setOutputProperty(OutputKeys.INDENT, "no");// 是否自动添加额外空白transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");// 是否忽略xml声明//transformer.setOutputProperty(OutputKeys., value)StringWriter writer = new StringWriter();Result result = new StreamResult(writer);handler.setResult(result);char[] ch = null;String uri = "";// 代表命名空间的URI 当URI无值时需要赋值空字符串String localName = "";// 命名空间本地名称(不包含前缀)未处理时须织空字符串handler.startDocument();// 开始文本handler.startElement(uri, localName, "ticketbook", null);// 开始创建节点ch = baseModel.getUsid().toCharArray();handler.startElement(uri, localName, "usid", null);// 开始借点 用户名handler.characters(ch, 0, ch.length);// 设置节点文本值handler.endElement(uri, localName, "usid");// 结束节点handler.startElement(uri, localName, "pwd", null);// 开始借点 用户名ch = baseModel.getPwd().toCharArray();if(ch==null||ch.length==0){handler.characters("****".toCharArray(), 0,"****".length());// 设置节点文本值}else{handler.characters(ch, 0, ch.length);// 设置节点文本值}handler.endElement(uri, localName, "pwd");// 结束节点handler.startElement(uri, localName, "logonstatus", null);ch = baseModel.getLogonstatus().toCharArray();handler.characters(ch, 0, ch.length);// 设置logon状态handler.endElement(uri, localName, "logonstatus");// 如果有状态正常且有数据则继续添加节点if (baseModel.getLogonstatus() != null && !"".equals(baseModel.getLogonstatus()) && "true".equals(baseModel.getLogonstatus())) {if (baseModel.getNodes() != null && baseModel.getNodes().size() > 0) {List nodes = baseModel.getNodes();for (int y = 0; y < nodes.size(); y++) {// 循环节点handler.startElement(uri, localName, "nodes", null);Map map = (Map) nodes.get(y);Iterator sitertor = map.keySet().iterator();while (sitertor.hasNext()) {String skey = sitertor.next().toString();if (map.get(skey) != null) {ch = map.get(skey).toString().toCharArray();}else {ch = "NULL".toCharArray(); }handler.startElement(uri, localName, skey, null);handler.characters(ch, 0, ch.length);// 设置logon状态handler.endElement(uri, localName, skey);}handler.endElement(uri, localName, "nodes");}}}handler.endElement(uri, localName, "ticketbook");handler.endDocument();return writer.toString();}private static class MyHandler extends DefaultHandler {private BaseBean baseModel = null;private StringBuilder builder;private Map map;public BaseBean getBaseModel() {return baseModel;}@Overridepublic void startDocument() throws SAXException {super.startDocument();baseModel = new BaseBean();builder = new StringBuilder();}@Overridepublic void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {super.startElement(uri, localName, qName, attributes);builder.setLength(0);/*if (qName.equals("usid")) {baseModel.setUsid(builder.toString());} else if (qName.equals("logonstatus")) {baseModel.setLogonstatus(builder.toString());} else if (qName.equals("pwd")) {baseModel.setPwd(builder.toString());} else */if (qName.equals("menu")) {if (baseModel.getNodes() == null) {baseModel.setNodes(new ArrayList<Map>());}map = new HashMap();}if (qName.equals("nodes")) {if (baseModel.getNodes() == null) {baseModel.setNodes(new ArrayList<Map>());}map = new HashMap();}}@Overridepublic void endElement(String uri, String localName, String qName) throws SAXException {super.endElement(uri, localName, qName);if(qName.equals("error")){baseModel.setError(builder.toString());}else if (qName.equals("usid")) {baseModel.setUsid(builder.toString());} else if (qName.equals("logonstatus")) {baseModel.setLogonstatus(builder.toString());} else if (qName.equals("pwd")) {baseModel.setPwd(builder.toString());} else if (qName.equals("menu")) {baseModel.getNodes().add(map);} else if (qName.equals("nodes")) {baseModel.getNodes().add(map);} else {if(map!=null){map.put(qName, builder.toString());}}}@Overridepublic void characters(char[] ch, int start, int length) throws SAXException {super.characters(ch, start, length);builder.append(ch, start, length); // 将读取的字符数组追加到builder中}}}
public class UrlAddr {private static final String Tag = "UrlAddr";public static String getInfo(String method_code, String username,String userpass) {String resultString = "";try {resultString = WebserviceHandle.getWebserviceXml(Sysconfig.METHOD, method_code, new String[] {Sysconfig.SYS_USERNAME, Sysconfig.SYS_USERPASS, username,userpass}, Sysconfig.SYSMD5_STR);Log.d(Tag, resultString);} catch (Exception e) {Log.d(Tag, resultString, e);e.printStackTrace();}return resultString;}}


配置连接

package com.mbl.wbsconn;public class Sysconfig {// MyWebServicepublic static final String METHOD = "getMessInfo";public static final String SYS_USERNAME = "admin";public static final String SYS_USERPASS = "12345678";public static final String SYSMD5_STR = "";public static String _urlWebString = "/services/androidBook?wsdl";public static String _url = "http://192.168.1.146:8090/services/androidBook?wsdl";public static String _nameSpace = "http://192.168.1.146:8090/";public static String _soap_action = "http://192.168.1.146:8090/";}


测试:

// 请求网络拿数据private class TestThread extends Thread {@Overridepublic void run() {Looper.prepare();resultString = UrlAddr.getInfo("43", "", "");//ArrayList<SearchBean> bean = Parse.ParseSearchAddress(resultString);if (resultString != null) {Log.i(TAG, "" + resultString + "======" + bean.size());Message msg = new Message();msg.obj = resultString;handler.sendMessage(msg);} else {Log.i(TAG, "没有数据");}Looper.loop();}}





更多相关文章

  1. android EditText设置不可写
  2. android“设置”里的版本号
  3. android用户界面之按钮(Button)教程实例汇
  4. 在Fragment中设置控件点击方法,执行失败。
  5. Android(安卓)闹钟管理类的使用
  6. TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
  7. Android设置通知栏/状态栏透明改变通知栏颜色和app最上部分颜色
  8. android 设置中划线 下划线等
  9. Andorid Dialog 示例【慢慢更新】

随机推荐

  1. Android(安卓)GLSurfaceView详解
  2. Android:保存图片到Sqlite数据库
  3. Android程序设计基础--总结
  4. Android(安卓)WebView的简单使用
  5. Android(安卓)external.db和internal.db
  6. Android(安卓)网络框架学习之OKHttp
  7. 自定义View之onMeasure()
  8. Appium学习(四)--原理、日志介绍
  9. Android开发常用命令整理
  10. Android(安卓)RecyclerView实现图片自适