Android——网络通信(HttpUrlConnection)
2017-03-23 09:39
369 查看
Android的网络通信,由于版本的废弃,现在大体分以下两种:
1、HttpUrlConnection
2、OkHttp
Android网络通信无非就是发送请求、获得应答、解析应答。
请求方式有两种:get和post请求。
1、get请求是一种以明文方式追加在URL后面形式,不安全,但是使用起来方便。
2、post请求是以暗文显示的,如果连账号,密码这样的私密信息都在网址(URL)中显
示就太不安全了,适用 要比get稍微麻烦些。
3、get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方
式。
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方
式。
get:url:http://wwwtest.rupeng.cn:8888/QueryAvatarInfo.ashx
字段 action GetAllNames
这是get请求,需要在url后面添加?action=GetAllNames才会有结果。
http://wwwtest.rupeng.cn:8888/QueryAvatarInfo.ashx?action=GetAllNames
大致get请求就是url?key1=value1&key2=value2….一般都是get请求。
post则不会这样看出后面key和value,使用特殊的加密方式才可以找到。
先来说HttpUrlConection的get请求。
1.huc=URL.openconnection() 通过URL打开连接
2.huc.connect() 建立连接
3.huc.getinputstream() 获得读取流
如果需要字符串内容,定义字符串,通过读取流经典读法进行读取就可以了。
我们来尝试读取百度首页的字符串内容(其实是html代码)。
这里因为读取内容是耗时操作,需要放在子线程当中,子线程无非访问UI线程,整个内
容显示用TextView,用了AsyncTask封装来操作子线程。
来个更高级的,通过网络下载文件(金山卫士),我们弹出dialog来显示进度。
下载结束后会多出jianshan.exe文件
total = huc.getContentLength();可以获得文件的总大小。
HttpUrlConnection的post请求无非多了几步。
在huc.connect之前先进行huc.setRequestMethod(“POST”);设置请求是post,默认
是get写不写无所谓。在连接之后需要加上后面的key=value信息,是通过写流写进去的
OutputStream os = huc.getOutputStream();
os.write(“action=GetAllNames”.getBytes());
同样能达到get效果。
涉及到网络和sdcard需要加载网络权限和挂载sdcard和写入权限。
1、HttpUrlConnection
2、OkHttp
Android网络通信无非就是发送请求、获得应答、解析应答。
请求方式有两种:get和post请求。
1、get请求是一种以明文方式追加在URL后面形式,不安全,但是使用起来方便。
2、post请求是以暗文显示的,如果连账号,密码这样的私密信息都在网址(URL)中显
示就太不安全了,适用 要比get稍微麻烦些。
3、get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方
式。
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方
式。
get:url:http://wwwtest.rupeng.cn:8888/QueryAvatarInfo.ashx
字段 action GetAllNames
这是get请求,需要在url后面添加?action=GetAllNames才会有结果。
http://wwwtest.rupeng.cn:8888/QueryAvatarInfo.ashx?action=GetAllNames
大致get请求就是url?key1=value1&key2=value2….一般都是get请求。
post则不会这样看出后面key和value,使用特殊的加密方式才可以找到。
先来说HttpUrlConection的get请求。
1.huc=URL.openconnection() 通过URL打开连接
2.huc.connect() 建立连接
3.huc.getinputstream() 获得读取流
如果需要字符串内容,定义字符串,通过读取流经典读法进行读取就可以了。
我们来尝试读取百度首页的字符串内容(其实是html代码)。
这里因为读取内容是耗时操作,需要放在子线程当中,子线程无非访问UI线程,整个内
容显示用TextView,用了AsyncTask封装来操作子线程。
AsyncTask<URL, Void, String> task = new AsyncTask<URL, Void, String>(){ @Override protected String doInBackground(URL... params) { // TODO Auto-generated method stub HttpURLConnection huc=null; StringBuffer buffer=new StringBuffer(); try { huc=(Ht 4000 tpURLConnection) params[0].openConnection(); huc.connect(); InputStream inputStream = huc.getInputStream(); int len=0; byte b[]=new byte[1024]; while((len=inputStream.read(b))!=-1) { buffer.append(new String(b,0,len)); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { huc.disconnect(); } return buffer.toString(); } @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); } @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub super.onPostExecute(result); tv.setText(result); } @Override protected void onProgressUpdate(Void... values) { // TODO Auto-generated method stub super.onProgressUpdate(values); } }; URL params = null; try { params = new URL("http://www.baidu.com"); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } task.execute(params);
来个更高级的,通过网络下载文件(金山卫士),我们弹出dialog来显示进度。
下载结束后会多出jianshan.exe文件
total = huc.getContentLength();可以获得文件的总大小。
HttpUrlConnection的post请求无非多了几步。
在huc.connect之前先进行huc.setRequestMethod(“POST”);设置请求是post,默认
是get写不写无所谓。在连接之后需要加上后面的key=value信息,是通过写流写进去的
OutputStream os = huc.getOutputStream();
os.write(“action=GetAllNames”.getBytes());
同样能达到get效果。
涉及到网络和sdcard需要加载网络权限和挂载sdcard和写入权限。
相关文章推荐
- Android的HTTP方式网络通信---HttpURLConnection
- Android 网络通信之 HttpURLConnection
- 【Android学习】网络通信----以HttpURLConnection Post请求为例
- Android HttpURLConnection 网络通信实时更新
- Android中网络通信方式的简单汇总(HttpURLConnection、HttpClient、Socket等)
- android网络通信之HttpUrlConnection
- 【代码】Android的网络通信详解HttpUrlConnection和HttpClient
- Android HttpURLConnection(Get,Post方式)进行网络通信 获取数据和网络图片
- Android 网络通信——HttpURLConnection
- Android开发之网络请求通信专题(一):基于HttpURLConnection的请求通信
- Android HTTP网络通信(一):使用HttpURLConnection、HttpClient
- 详细讲解Android的网络通信(HttpUrlConnection和HttpClient)
- Android开发之网络通信(HttpURLConnection,HttpClient,HttpGet,HttpPost)
- Android HttpURLConnection网络通信
- android 网络通信之HttpURLConnection与HttpClient
- Android学习篇章44-HttpURLConnection网络通信
- Android入门笔记 - 网络通信 - HttpURLConnection
- Android网络通信之HttpURLConnection
- 详细讲解Android的网络通信(HttpUrlConnection和HttpClient)
- android 网络通信之HttpURLConnection