转自:http://blog.youkuaiyun.com/panfb227/article/details/6138865
【调用java cxf编写的webservice】
下面是访问Webservice的一段核心代码,Webservice是用java基于CXF开发的。
结果返回单个字符串Result:
- protected void InvokeWebService() {
- try
- {
- String serviceUrl = Constant.URL;
- String methodName = "getSYfee";
- SoapObject request = new SoapObject(Constant.NAMESPACE,
- methodName);
- request.addProperty("fromPort", mOrigin.getText().toString());
- request.addProperty("toPort", mDest.getText().toString());
- SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
- SoapEnvelope.VER10);
- envelope.bodyOut = request;
- HttpTransportSE ht = new HttpTransportSE(serviceUrl);
- ht.call(null, envelope);
- if (envelope.getResponse() != null)
- {
- String Re = "0";
- SoapObject soapObject = (SoapObject) envelope.getResponse();
- if (mBoxType.getText().toString().trim().equals("20GP"))
- {
- Re = soapObject.getProperty("twgp").toString();
- }
- else if (mBoxType.getText().toString().trim().equals("40GP"))
- {
- Re = soapObject.getProperty("ftgp").toString();
- }
- else if (mBoxType.getText().toString().trim().equals("40HC"))
- {
- Re = soapObject.getProperty("fth").toString();
- }
- result = Re;
- }
- else
- {
- result = "-1";
- }
- }
- catch (Exception e)
- {
- result = "-2";
- }
- }
结果返回多行多列数据集result:
- protected Object CallWebService() {
- Bundle getBundle = getIntent().getExtras();
- String serviceUrl = Constant.URL;
- String methodName = "getCargoCrack";
- SoapObject request = new SoapObject(Constant.NAMESPACE,
- methodName);
- request.addProperty("s_consign", getBundle.getString("Pass_Consign"));
- request.addProperty("s_container", getBundle.getString("Pass_Container"));
- SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
- SoapEnvelope.VER10);
- envelope.bodyOut = request;
- HttpTransportSE ht = new HttpTransportSE(serviceUrl);
- //(new MarshalBase64()).register(envelope);//放着没错
- SoapObject result = null;
- try {
- // web service请求
- ht.call(null, envelope);
- // 得到返回结果
- result = (SoapObject) envelope.bodyIn;
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return result;
- }
【调用.net编写的webservice】
与调用java的webservice最大区别在于,请求时需要传入soapAction
- /**
- * 请求.net web service
- */
- public static Object CallWebService() {
- SoapObject result = null;
- try {
- String serviceUrl = Constant.URL;
- String methodName = "wbsLoginUser";
- String soapAction = Constant.NAMESPACE + "wbsLoginUser";
- SoapObject request = new SoapObject(Constant.NAMESPACE,
- methodName);
- request.addProperty("sUserCode", "admin");
- request.addProperty("sPasswd", "a");
- SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
- SoapEnvelope.VER11);
- envelope.bodyOut = request;
- envelope.dotNet = true;
- HttpTransportSE ht = new HttpTransportSE(serviceUrl);
- ht.debug = true;
- // web service请求
- ht.call(soapAction, envelope);
- // 得到返回结果
- result = (SoapObject) envelope.bodyIn;
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return result;
- }