android 连接服务器的方法及安全性问题

(一)Android网络通信的六种方式示例代码

有篇网文很不错:http://www.apkbus.com/android-13316-1-1.html,

在Android中几种网络编程的方式:

(1)针对TCP/IP的Socket、ServerSocket

(2)针对UDP的DatagramSocket、DatagramPackage。这里需要注意的是,考虑到Android设备通常是手持终端,IP都是随着上网进行分配的。不是固定的。因此开发也是有一点与普通互联网应用有所差异的。

(3)针对直接URL的HttpURLConnection

(4)Google集成了Apache HTTP客户端,可使用HTTP进行网络编程。针对HTTP,Google集成了Appache Http core和httpclient 4版本,因此特别注意Android不支持httpclient 3.x系列,而且目前并不支持Multipart(MIME),需要自行添加httpmime.jar 

(5)使用Web Service。Android可以通过开源包如jackson去支持Xmlrpc和Jsonrpc,另外也可以用Ksoap2去实现Webservice 

(6) 直接使用WebView视图组件显示网页。基于WebView 进行开发,Google已经提供了一个基于chrome-lite的Web浏览器,直接就可以进行上网浏览网页。

尽管有多种连接服务器的方式,但受制于具体的应用场景,其实选择的方法并不多,比较常用的方法是第4种,和网页开发基本相同。

(二)榜样

榜样的力量是无穷的,在此分析一下淘宝客户端的连接方式,或许猜测的并不正确。

login(this.userName, this.password, PhoneInfo.getImei(this), PhoneInfo.getImsi(this), this.checkCode, this.checkCodeId);
...
new ConnectorHelper(pubKey, userName, password, imei, imsi, nextTime, checkCode, checkCodeId,token, appkey, appsecret);
...
url 中的参数:
api:com.taobao.client.sys.login,
t:nextTime,
v:v2,
username,
password:RSAUtil.encrypt(password),
token,
checkCode,
checkCodeId,
appKey,
topToken:(byte2hex(MD5(getBytes("gbk")))=>(appkey+appsecret+userName+nextTime),
apiBaseUrl,
ttid,
imei,
imsi,
device_id,
appSecret,
sign

猜你喜欢

转载自cnmqw.iteye.com/blog/1736721