取网络数据主要靠发交易(或者说请求,接口等),而这些交易由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());

转载于:https://www.cnblogs.com/wangfeng520/p/5063273.html

android—获取网络数据相关推荐

  1. 安卓 原生okhttp使用get与post获取网络数据

    网址 https://square.github.io/okhttp/ 配置 依赖 在module的build.gradle中: implementation 'com.squareup.okhttp ...

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

    原文:Swift实战-豆瓣电台(三)获取网络数据 观看地址:http://v.youku.com/v_show/id_XNzMwMzQxMzky.html 这节内容,我们先说了怎么将storyboar ...

  3. Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云)

    Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云) 学习目标 获取网络数据Socket API接口 网络爬虫Crawler(制 ...

  4. 【搬运自用】 用Python获取网络数据 -Python100天从新手到大师Day57(GitHub)

    用Python获取网络数据 原作者:骆昊 https://github.com/jackfrued/Python-100-Days 更多内容欢迎查看并订阅专栏'Python从新手到大师'和'Pytho ...

  5. Arduino ESP32 获取网络数据(HTTP POST方式)

    Arduino ESP32 获取网络数据(HTTP POST方式) 相关篇<Arduino ESP32 获取网络数据(HTTP GET方式)> <Arduino ESP32 获取网络 ...

  6. Android获取网络时间、NTP服务器时间的方法

    一.通过免费或者收费的API接口获取 1.免费 QQ:http://cgi.im.qq.com/cgi-bin/cgi_svrtime 淘宝:http://api.m.taobao.com/rest/ ...

  7. Arduino ESP32 获取网络数据(HTTP GET方式)

    Arduino ESP32 获取网络数据(HTTP GET方式) 相关篇<Arduino ESP32 获取网络数据(HTTP POST方式)> <Arduino ESP32 获取网络 ...

  8. Android 使用Get请求获取网络数据(极速数据)

    1.环境配置 android studio 2.3.3 java 16.0.1 1.1.配置Json库 需要准备的jar包:json-lib-2.4-kdj15.jar 第一步:拷贝需要用到的jar包 ...

  9. android获取网络视频缩略图,Android 获取视频(本地和网络)缩略图的解决方案

    在Android 开发视频的时候,通常都需要显示视频列表,而视频列表通常都有一张视频缩略图,那么它是怎么获取的呢, 关于网络视频的缩略图的实现方案主要有两种: 1.后台返回视频时顺便连缩略图的路径都返 ...

最新文章

  1. 从数据中心基础设施的视角来看 Facebook 机器学习的应用
  2. Solr环境搭建及IK分词的集成及solrJ的调用(一)
  3. 解决 WIn7 启动时“你有等待写入光盘的文件”
  4. x264编码参数大测试:10 trellis(1000Kbps)
  5. JS获取HTML元素属性【转】
  6. Linux驱动编程 step-by-step (五)主要的文件操作方法实现
  7. Response.Redirect奇怪现象
  8. 《C++编程风格(修订版)》——3.2 继承作用域准则
  9. 字节跳动资深面试官亲述:java进阶篇
  10. 讨论下怎么能实现保证新闻时效性推荐算法机制
  11. 深入剖析BIO到NIO演变史
  12. crazybox路由器解决授权码问题
  13. 单设施布置方法-精确重心法
  14. Json汉化-使用JavaScript和百度翻译API免费实现Json文件的汉化
  15. Axis2 报错 Faulty Services
  16. CAJ如何在线免费转换成可编辑的Word
  17. Unity 卡在 Rload Script Assemblies
  18. 文件数据储存之内部储存
  19. Steam 网络联机配置代码
  20. 昆明等保合规怎么建设,企业等保安全解决方案,等保建设测评流程

热门文章

  1. 以核心体验设计为引,深入剖析“打铁”游戏《只狼》的精妙之处
  2. 前端性能优化-减少HTTP请求数
  3. python的5种高级用法
  4. mysql堵塞 sending data和sort状态多,cpu高
  5. TermServDevices错误的解决方案
  6. 怎样通过DOS来提取一个文件夹下所有文件的名字
  7. 设计模式(4)--AbstractFactory(抽象工厂模式)--创建型
  8. 设置计算机的出站和入站规则
  9. Linux 网络编程四(socket多线程升级版)
  10. MVC后台创建Json(List),前台接受并循环读取