1. 程式人生 > >android 呼叫NET webservice返回實體類

android 呼叫NET webservice返回實體類


1.首先是返回的net 實體類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ModelLibrary
{
    /// <summary>
    /// 累積量實體類
    /// </summary>
    [Serializable]
    public partial class QueryModel
    {
        public QueryModel()
        { }
        #region Model
        private string _result;
        private string _errorinfo;
        private AccumulatorList[] _accumulist;
        public AccumulatorList[] Accumulist
        {
            set
            {
                _accumulist = value;
            }
            get
            {
                return _accumulist;
            }
        }
        /// <summary>
        /// 錯誤資訊描述
        /// </summary>
        public string errorInfo
        {
            set
            {
                _errorinfo = value;
            }
            get
            {
                return _errorinfo;
            }
        }
        /// <summary>
        /// 查詢結果 0正確,-1,錯誤
        /// </summary>
        public string result
        {
            set
            {
                _result = value;
            }
            get
            {
                return _result;
            }
        }
        #endregion Model
    }
    public partial class AccumulatorList
    {
        private string _name;        
        /// <summary>
        /// 名稱
        /// </summary>
        public string Name
        {
            set
            {
                name = value;
            }
            get
            {
                return _name;
            }
        }
    }
}

2.java程式碼(1)

/**
 * QQ:89100602
 * Email:[email protected]
 */
package com.android.entity;

import java.io.Serializable;

/**
 * @author  
 */
public class AccumulatorList implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String name;

	public void setname(String name) {
		name = name;
	}

	public String getAccumulatorname() {
		return name;
	}
}


java程式碼(2)

/**
 * zhangyc
 * QQ:89100602
 * Email:[email protected]
 */
package com.android.entity;

import java.io.Serializable;


public class AccumulatorQueryEntity implements Serializable {
	private static final long serialVersionUID = 1L;
	private String strResult = null;
	private String strErrInfo = null;
	private AccumulatorList[] accList;
	 
	public String getResult() {
		return strResult;
	}

	public void setResult(String sResult) {
		strResult = sResult;
	}

	public String getErrInfo() {
		return strErrInfo;
	}

	public void setErrInfo(String sErrinfo) {
		strErrInfo = sErrinfo;
	}
	public void setAcclist(AccumulatorList[] accumu)
	{
		accList = accumu;
	}
	public AccumulatorList[] getAcclist()
	{
		return accList;
	}

 
}
 

3.java程式碼3

/**
 * QQ:89100602
 * Email:[email protected]
 */
package com.android;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;

import android.util.Log;

import com.chaozi.android.entity.AccumulatorList;
import com.chaozi.android.entity.AccumulatorQueryEntity;

/**
 */
public class AccumulatorQuery {

	/**
	 * 	 
	 * @param mobile
	 * @return
	 */

	public AccumulatorQueryEntity MobileQuery(String strName) {
		AccumulatorQueryEntity entity = new AccumulatorQueryEntity();
		// 需呼叫webservice名稱
		String methodName = "QueryService";
	 

		String url = "http://127.0.0.1/WebServiceMobile.asmx";// webserivce地址

		String nameSpace = "http://tempuri.org/"; // 空間名,可修改   
		String SOAP_ACTION = nameSpace + methodName;
		SoapObject request = new SoapObject(nameSpace, methodName);
		SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
				SoapEnvelope.VER11);

		request.addProperty("username", strName); //username 為在.NET傳遞引數名

		envelope.dotNet = true; // .net 支援
		envelope.setOutputSoapObject(request);
		envelope.addMapping(nameSpace, "QueryModel",
				AccumulatorQuery.class);
				// QueryModel 為NET實體類名
		AndroidHttpTransport androidHttpTrandsport = new AndroidHttpTransport(
				url);
		try {
			androidHttpTrandsport.call(SOAP_ACTION, envelope);
			SoapObject soapObject = (SoapObject) envelope.getResponse();
			if (soapObject.getName() == "anyType") {

			 
				String strRe = soapObject.getProperty("result").toString(); //result為.NET中定義的實體名
				 
				entity.setResult(strRe);
			 
				if ("0".equals(strRe)) {
					SoapObject soapChilds = (SoapObject) soapObject
							.getProperty("Accumulist");
					int k = soapObject.getPropertyCount();
					AccumulatorList[] acclist = new AccumulatorList[k];
					Log.i("soapChilds", k + "");
					for (int i = 0; i < k; i++) {
						acclist[i] = new AccumulatorList();
						SoapObject sChilds = (SoapObject) soapChilds
								.getProperty(i);
						int h = sChilds.getPropertyCount();

					 Log.i("methodName",
								sChilds.getProperty("Name")
										.toString());
										//Name為.NET中定義的實體名
										//輸出檢視返回值
						acclist[i].setAccumulatorname(sChilds.getProperty(
								"Name").toString());

					}
					entity.setAcclist(acclist);
				}
				 }
			}
		} catch (Exception ex) {
			Log.i("methodName", "程式錯誤:" + ex.getMessage());

		}
		return entity;
	}
}



 android 程式碼

package com.android;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

import com.chaozi.android.entity.AccumulatorQueryEntity;

public class MySoapTestActivity extends Activity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		TextView txt = (TextView) findViewById(R.id.text);
		String userInfo = "";
		AccumulatorQueryEntity entity = new AccumulatorQueryEntity();
		AccumulatorQuery acc = new AccumulatorQuery();
		entity = acc.MobileQuery("test");
		userInfo = entity.getResult();
		int k = 0;
		String sName = "";
		if ("0".equals(userInfo)) {
			k = entity.getAcclist().length;

			for (int i = 0; i < k; i++) {
				sName += entity.getAcclist()[i].getname();
				System.out.println(sName);
			}
		}
		txt.setText(userInfo + "::::::" + sName);
	}
} 
開發需要 ksoap2-android-assembly-2.4-jar-with-dependencies.jar 包。下載地址http://download.csdn.net/detail/chaozi/4261431

相關推薦

android 呼叫NET webservice返回實體

1.首先是返回的net 實體類 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ModelLibrary { ///

android和.net webservice中的DES加密算法

brush row world parseint 加密算法 發現 mark odin 參數 也是看了一堆的例子,本身並不會寫加密算法,好在只要會用就行了,我們把在app中使用的參數加密,然後在.net端的webservice中進行解密,本身並沒有什麽問題,但是andro

android呼叫相機拍照返回的照片大小太小,變得模糊

1、使用相機拍照預設情況下呼叫相機的方式: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, CAMERA_REQUEST_CODE);//CAMERA_REQ

Axis2 java呼叫.net webservice介面的問題(鄭州就維)

這是一個古老的問題,古老到從我若干年前遇到這樣的問題就是一個解決之道:反覆嘗試。其實標準是什麼,標準就是一個束縛,一種按既定規則的束縛,錯點點,你的呼叫就可能不成功,不成功後你要花費大量的力氣查詢原因和錯誤,差異很多帖子,查詢相似的地方,Webservice的實現不同,S

使用原生SQL返回實體具體實現詳情

注:可以直接複製貼上,歡迎提出各種問題,謝謝! 因為網上查詢大都是相同的,自己做時發現很多不懂,摸索了很久才弄懂,所以寫了這個例子,比較容易看懂吧。 使用原生SQL查詢並將結果返回實體中: (1)因為原生SQL返回使用SQLQuery的createSqlQuery();返

hibernate返回實體中的date格式。問題

業務需求,需要返回具體的時間格式。而不是一堆long型別的資料。 @Column(name="pubtime") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") public Date pubtime; @Column

Java呼叫.net WebService介面方法步驟

1.在vs上建立一個Web服務(WebService)專案,然後部署到IIS上(訪問介面期間IIS不能關閉) 2.建立一個Java專案(本人使用MyEclipse),右擊專案選擇【New】—>【Other】選項,在彈出框中找到Web Services資料夾選中Web

Android呼叫系統照相機返回intent為空原因分析

1.在呼叫android系統相簿時,使用的是如下方式:     Intent intent = new Intent(Intent.ACTION_GET_CONTENT);             intent.addCategory(Intent.CATEGORY_OPE

Android 呼叫.Net WCF服務

本來以為在java平臺上用axis2生成了客戶端代理類然後移植到Android平臺上就好了。沒想到在移植過程中出現了很多問題。說明JVM和android的DVM差距還是很大的。 JVM執行的是class檔案,而DVM執行的是dex檔案。 在eclipse裡面開發Android

cxf 呼叫 .net webservice

1.   問題背景          現在我們兩套語言並行,其中必然會涉及到不同系統的相互訪問。 .net 的會員資訊是用 webservice  提供服務的。那如何對現有 .net webservice 不做任何改動的情況下,用

android呼叫webservice傳遞自定義以及的集合

package com.cbq.webServiceTest; import java.util.Hashtable; import org.ksoap2.serialization.KvmSerializable; import org.ksoap2.serialization.PropertyInfo;

ASP.NET沒有魔法——ASP.NET MVC 與數據庫之EF實體與數據庫結構

類之間的關系 context 模型 rst 例子 style 方法 eid 一個   大家都知道在關系型數據庫中每張表的每個字段都會有自己的屬性,如:數據類型、長度、是否為空、主外鍵、索引以及表與表之間的關系。但對於C#編寫的類來說,它的屬性只有一個數據類型和類與類之間的關

.NET使用DAO.NET實體模型操作數據庫

xhtml response pda name end .com web ado http 一、新建項目 打開vs2017,新建一個項目,命名為orm1 二、新建數據庫 打開 SqlServer數據庫,新建數據庫 orm1,並新建表 student 。

【從零開始搭建自己的.NET Core Api框架】(三)集成輕量級ORM——SqlSugar:3.3 自動生成實體

i++ 點運算 自己的 yui content project style ref 數據庫表 系列目錄 一. 創建項目並集成swagger   1.1 創建   1.2 完善 二. 搭建項目整體架構 三. 集成輕量級ORM框架——SqlSugar   3.1 搭建環境  

CXF2.7整合spring發布webservice返回型是Map和List<Map>

col oca 嚴重 jaxb worker 並且 數據 返回 anr      在昨天研究了發布CXF發布webservice之後想著將以前的項目發布webservice接口,可是怎麽也發布不起來,服務啟動失敗,原來是自己的接口有返回值類型是Map。   研究了一番之

Android Studio 外掛 GsonFormat 自動生成實體

Android  Studio 中自帶 GsonFormat 外掛,可以根據你的Json 串,自動生成相應的實體類。非常方便。介紹下使用教程: 第一步 : File --->Setting------>Plugins,然後搜尋GsonFormat。

SpringBoot 返回Json實體屬性大小寫問題

  問題: 如果前端使用的引數是大寫的而不是標準的駝峰式寫法,那麼後臺在進行引數的互動的時候會出現引數接收不到的問題 如:前端使用 Title 而後端實體類中式title 這樣是不統一的;   解決:兩種方式 Jackjson 和 Fastjson

java將JSON字串轉換為實體物件,基於net sf json實現

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

.net core 中簡單封裝Dapper.Extensions 並使用sqlsuger自動生成實體

引言 由公司需要使用dapper  同時支援多資料庫 又需要支援實體類 又需要支援sql 還需要支援事務 所以採用了 dapper + dapperExtensions  並配套 生成實體類小工具的方式     環境準備 dapper環境 nuget中

(轉)Android訪問webservice 糾正網上亂傳的android呼叫Webservice方法。

糾正網上亂傳的android呼叫Webservice方法。   1.寫作背景:   筆者想實現android呼叫webservice,可是網上全是不管對與錯亂轉載的文章,結果不但不能解決問題,只會讓人心煩,所以筆者決定將自己整理好的能用的android呼叫webserv