欢迎来到天天文库
浏览记录
ID:37925669
大小:93.50 KB
页数:9页
时间:2019-06-02
《Android网络通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、android的网络编程分为2种:基于socket的,和基于http协议的。Http通信以xml或者json为载体,相互通信数据。JSON(JavaScriptObjectNotation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。Socket通信Socket与Http不同的是两个的协议不同,socket是面向TCP/UDP协议的,http通信时面向HTTP协议的。Android对于http网络通信,提供了标准的java接口——httpURLConne
2、ction接口,以及apache的接口——httpclient接口。其中我自己用的比较多的是httpclient这个接口,因为它的功能更为丰富很有效。同时http通信也分为post方式和get的方式,两个相比较的话,post传送的数据量比较大,安全性也比较高。Http通信Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面介绍四种常用网络请求方式,通过Android单元测试来完成这四种方法。java.net包中的HttpURLConnection类Get方式:1.//Get方式请求2.publicstaticvoidrequestByGet
3、()throwsException{ 3. Stringpath="https://reg.163.com/logins.jsp?id=helloworld&pwd=android"; 4. //新建一个URL对象5. URLurl=newURL(path); 6. //打开一个HttpURLConnection连接7. HttpURLConnectionurlConn=(HttpURLConnection)url.openConnection(); 8. //设置连接超时时间1. urlConn.setConnectTimeout(5*10
4、00); 2. //开始连接3. urlConn.connect(); 4. //判断请求是否成功5. if(urlConn.getResponseCode()==HTTP_200){ 6. //获取返回的数据7. byte[]data=readStream(urlConn.getInputStream()); 8. Log.i(TAG_GET,"Get方式请求成功,返回数据如下:"); 9. Log.i(TAG_GET,newString(data,"UTF-8")); 10. }else{ 11.
5、 Log.i(TAG_GET,"Get方式请求失败"); 12. } 13. //关闭连接14. urlConn.disconnect(); 15.} Post方式:1.//Post方式请求2.publicstaticvoidrequestByPost()throwsThrowable{ 3. Stringpath="https://reg.163.com/logins.jsp"; 4. //请求的参数转换为byte数组5. Stringparams="id="+URLEncoder.encode("helloworld","UT
6、F-8") 6. +"&pwd="+URLEncoder.encode("android","UTF-8"); 7. byte[]postData=params.getBytes(); 8. //新建一个URL对象9. URLurl=newURL(path); 10. //打开一个HttpURLConnection连接11. HttpURLConnectionurlConn=(HttpURLConnection)url.openConnection(); 12. //设置连接超时时间13. urlConn.setConnect
7、Timeout(5*1000); 14. //Post请求必须设置允许输出15. urlConn.setDoOutput(true); 16. //Post请求不能使用缓存17. urlConn.setUseCaches(false); 18. //设置为Post请求19. urlConn.setRequestMethod("POST"); 1. urlConn.setInstanceFollowRedirects(true); 2. //配置请求Content-Type3. urlConn.setRequestProperty("Co
8、ntent
此文档下载收益归作者所有