取网络数据主要靠发交易(或者说请求,接口等),而这些交易由java中的网络通信,HttpURLConnection和HttpClient实现,以下是具体例子。

 
大家都知道,网络通信,发送请求有两种方式,GET和POST,这里也不例外。
 
1.HttpURLConnection的GET方式获取网络数据,get方式将参数放在url后一起传递过去,而且会被看到,一般不太安全,但是get方式只获取数据,不会更新数据。
步骤:
(1).建立URL,URL url=new URL(urltmp); //urltmp=http://96.0.57.141:8080/pmobile/NoticeInfoListQry.do?NoteType=1
 
(2)使用URL建立连接,HttpURLConnection urlcon=url.openConnection()
(3)连接,并获取数据流 
 InputStreamReader reader=new InputStreamReader(urlcon.getInputStream());
 
(4)使用IO流处理数据,这里以BufferedReader为例
 BufferedReader bf=new BufferedReader(reader);
 
代码示例:

2.使用POST方式获取数据,post方式参数是放在请求的内容里面上送的,而不是放在url里面,相对安全一点,但是post有更新的操作,一般form表单提交的数据都是采用的post方式
 
步骤:
(1)建立URL,跟get方式一样 URL url=new URL(xxxxx);
(2)建立连接,HttpURLConnection urlcon=url.openConnection();
(3)配置属性,这里是最大的区别
urlcon.setDoOutput(true); //不设置dooutput属性,无法在内容上送数据
urlcon.setDoInput(true); //这个doinput属性可以不设置,默认是true
urlcon.setRequestMethod("POST"); //不设置这个方式也能拿到数据,并且注意POST要全大写
urlcon.setUseCaches(false);//post方式不能使用缓存,安全问题?
urlcon.setInstanceFollowRedirects(true);//
 
//如果不设置这个属性,那么上送的参数是对象时,有可能抛出异常
urlcon.setRequestProperty("Content-type","application/x-java-serialized-object");
urlcon.connect();  //连接必须在上面之后,也可以没有,因为调用OutputStream时默认连接一次
 
(4)使用DataOutputStream讲参数写入到上送的内容中
DataOutputStream data=new DataOutputStream(urlcon.getOutputStream());
String param="NoteType=1";
data.writeBytes(param);
data.flush();
data.close();
 
(5)获取数据流,跟get方式一样
InputStreamReader reader=new InputStreamReader(urlcon.getInputStream());
 
(6)处理数据
BufferedReader bf=new BufferedReader(reader);
 
代码如下:

3.使用HttpClient的get方法获取数据,一样将参数放在url后面上送
步骤:
(1).创建get请求,HttpGet request=new HttpGet(xxx);
(2).创建HttpClient对象,HttpClient clinet=new DefaultHttpClien();
(3).调用client的execute方法,获取返回数据,HttpResponse response=client.execute(request);
(4).获取数据, String res=EntityUtils.toString(response.getEntity());
 
代码如下:

4.使用HttpClient的post方式获取数据,参数是放在请求的内容中
(1).new一个HttpPost对象,HttpPost request=new HttpPost(xxx);
(2).创建参数键值对,只能使用规定格式NameValuePair,List param=new ArrayList();
(3).添加参数,param.add(new BasicNameValuePair("xxx",xxxx));
(4).将参数转换格式,HttpEntity entity=new UrlEncodeFormEntity(param,"UTF-8");
(5).将参数放到请求中,request.setEntity(entity);
(6).创建HttpClient,HttpClient client=new DefaultHttpClient();
(7).执行连接,获取返回内容,HttpResponse response=client.execute(request);
(8).获取数据,String res=EntityUtils.toString(response.getEntity());
 

android—获取网络数据的更多相关文章

  1. Android -- 获取网络数据并将数据存到本地数据库中

    public static final int downloadDone = 1; // 用户model数组 ArrayList<Loginer> loginers = new Array ...

  2. Android获取网络数据进行GZIP解压

    说明:现在很多网站都会在回传数据的时候进行GZIP压缩,我们可以在请求头中申明支持GZIP压缩.可以减轻网络传输压力,Xutils中已经实现. 下面是一个DEMO,便于理解. private void ...

  3. Android中获取网络数据时的分页加载

    //此实在Fragment中实现的,黄色部分为自动加载,红色部分是需要注意的和手动加载,    蓝色部分是睡眠时间,自我感觉不用写  ,还有就是手动加载时,不知道为什么进去后显示的就是最后一行,求大神 ...

  4. Android获取网络状态

    Android获取网络状态 学习自 https://developer.android.google.cn/reference/android/net/ConnectivityManager http ...

  5. [置顶] 获取网络数据中的数组显示成ListView的简单流程

    首先说一下  这是我自己的个人笔记,如果想看看,不用看细节,可以看流程. 定义一个线程池 ExecutorService pool = Executors.newFixedThreadPool(15) ...

  6. ListView获取网络数据并展示优化练习

    权限: <uses-permission android:name="android.permission.INTERNET"></uses-permission ...

  7. Swift实战-豆瓣电台(三)获取网络数据

    观看地址:http://v.youku.com/v_show/id_XNzMwMzQxMzky.html 这节内容,我们先说了怎么将storyboard中的组件在类中进行绑定.然后写了一个类用来获取网 ...

  8. 使用NSURLSession获取网络数据和下载文件

    使用NSURLSession获取网络数据 使用NSURLSession下载文件

  9. Http方式获取网络数据

    通过以下代码可以根据网址获取网页的html数据,安卓中获取网络数据的时候会用到,而且会用Java中的sax方式解析获取到数据.(sax解析主要是解析xml)具体代码如下: package com.wy ...

随机推荐

  1. ls -alrth 及ls 详解

    idcdpi  抓包过程中 用了命令  ls   - alrth :命令,所以回头重新学习 ls命令 linux ls和 ll 命令 标签: linuxsocketssolarisbash出版扩展 2 ...

  2. 老码农教你在 StackOverflow 上谈笑风生

    作为一个高大上的码农,你肯定用到过 StackOverflow,必须的.会有人否定这个断言么?那他恐怕不是真正的码农,或者说还没入门.StackOverflow 对于码农的重要性,基本就和诸葛亮对刘备 ...

  3. Servlet的生命周期及filter,servletRequest和servletResponse

    序,Web应用中,Servlet和Filter是很重要的两个概念,一定要理解透彻. 一.Servlet类 继承自HttpServlet,HttpServlet是一个抽象类,主要包含的方法有init,s ...

  4. HDU 4883 TIANKENG’s restaurant

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4883 解题报告:一家餐馆一天中有n波客人来吃饭,第 i 波  k 客人到达的时间是 s ,离开时的时间 ...

  5. HNU 12817 Shipura(表达式求值)

    题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12817 解题报告:定义两种运算符号,一种是>>,就 ...

  6. Linux下的网络管理工具—OpenNMS

    导读 OpenNMS的是一个运营商级别的,高度集成的,开放源码的平台,用于构建网络监控解决方案.OpenNMS有两个发行版:Meridian and Horizon.使用Meridian是可取的,对企 ...

  7. Centos优化Hadoop

    导读 Hadoop是一个能够让用户轻松架构和使用的分布式计算平台,用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序,本节讲安装并且优化centos 6.7 系统下的Supper Hado ...

  8. NGUI例子Scroll View场景中item添加点击后自动滑到终点

    http://blog.csdn.net/luyuncsd123/article/details/22914497 最近在做一个项目的UI,需求是1.拖动items后当永远有一个item保存在中间位置 ...

  9. linux下软件安装的方法

    linux下软件的安装与卸载   第一章   linux下安装软件,如何知道软件安装位置 注:一般的软件的默认安装目录在 jdk-1_6_0_14-linux-i586-rpm.bin    ←修改为 ...

  10. 腾讯新浪通过IP地址获取当前地理位置(省份)的接口

    腾讯新浪通过IP地址获取当前地理位置(省份)的接口  腾讯的接口是 ,返回数组 http://fw.qq.com/ipaddress 返回值 var IPData = new Array(" ...