private void sendRequestWithHttpURLConnection() { new Thread(new Runnable() { @Override public void run() { HttpURLConnection connection = null; BufferedReader reader = null; try { URL url = new URL("http://www.baidu.com"); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(4000); connection.setReadTimeout(4000); InputStream inputStream = connection.getInputStream(); reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder stringBuilder = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { stringBuilder.append(line); } showResponse(stringBuilder.toString());//更新ui } catch (IOException e) { e.printStackTrace(); } } }).start(); } private void showResponse(final String response) { runOnUiThread(new Runnable() { @Override public void run() { textView.setText(response);//设置TextView的内容 } }); }
GET、HEAD、POST、PUT、DELETE、OPTIONS区别
GET
get请求是用来获取数据的,只是用来查询数据,不对服务器的数据做任何的修改,新增,删除等操作。
在这里我们认为get请求是安全的,以及幂等的。安全就是指不影响服务器的数据,幂等是指同一个请求发送多次返回的结果应该相同。
get请求会把请求的参数附件到URL后面,参数暴露在外面容易被抓包,参数没有限制
- 安全、幂等
- 用于获取数据
HEAD
HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。
POST
post请求一般是对服务器的数据做改变,常用来数据的提交,新增操作。
post请求参数都在body请求体中,body大小是有限制的
PUT
put请求与post一样都会改变服务器的数据,但是put的侧重点在于对于数据的修改操作,但是post侧重于对于数据的增加。
DELETE
delete请求用来删除服务器的资源。
OPTIONS
options请求属于浏览器的预检请求,查看服务器是否接受请求,预检通过后,浏览器才会去发get,post,put,delete等请求。至于什么情况下浏览器会发预检请求,浏览器会会将请求分为两类,简单请求与非简单请求,非简单请求会产生预检options请求。
JSON 与 XML 的区别、优劣势
1.主要区别:
(1)
JSON多用于简单的结构化数据方面,通常是以数据为中心,而不是以文档为中心,因此JSON不是文本标记语言,它是为数据设计而生。
(2)
XML可以用于结构化和半结构化数据两个方面,是一种文本标记语言,可以以数据及文档为中心,兼职两者。
2.优劣势:
(1)
JSON数据类型很少,并且需要预定义,够简单,适合新手入门;
JSON具有简单的结构定义和文档组合结构
但缺乏属性、名称空间、继承和替换。
JSON没有XML文本节点(text()),因此JSON不能实现混合内容的功能,这就说明了JSON并不是文本标记语言
还有JSON没有date数据类型,而XML存在date类型
但JSON可以实现date类型跟String类型的转换,数据库中使用TO_CAHR()和TO_DATE()方法,后台程式中可以使用格式化的方法进行转换
(2)
XML数据类型较多,数据可以是无类型的,也可以是基于XML模式或文档类型定义(DTD),相对比较复杂
一般来说,订单在XML文档中很重要,对于XML文档里面的javascript对象的顺序是无关要紧的。
3.总结:
由于其简单的定义和特性,使用JSON数据通常更容易生成、解析和处理XML数据。若用例包括合并不同的数据源通常使用XML,因为XML提供名称空间和其他促进模块化和继承的结构。
<1>.用XML表示中国部分省市数据如下:
<?xml version="1.0" encoding="utf-8" ?> <country> <name>中国</name> <province> <name>黑龙江</name> <citys> <city>哈尔滨</city> <city>大庆</city> </citys> </province> <province> <name>广东</name> <citys> <city>广州</city> <city>深圳</city> <city>珠海</city> </citys> </province> <province> <name>台湾</name> <citys> <city>台北</city> <city>高雄</city> </citys> </province> <province> <name>新疆</name> <citys> <city>乌鲁木齐</city> </citys> </province> </country>
<2>.用JSON表示中国部分省市数据如下:
var country = { name: "中国", provinces: [ { name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} }, { name: "广东", citys: { city: ["广州", "深圳", "珠海"]} }, { name: "台湾", citys: { city: ["台北", "高雄"]} }, { name: "新疆", citys: { city: ["乌鲁木齐"]} } ] } 复制代码
XML和JSON的优缺点对比
(1).可读性方面。
JSON和XML的数据可读性基本相同,JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,XML可读性较好些。
(2).可扩展性方面。
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
(3).编码难度方面。
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码(简单容易上手),可是要写好XML就不太容易了。
在线转换:JSON在线 | JSON解析格式化—SO JSON在线工具
(4).解码难度方面。
XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
(5).流行度方面。
XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。
(6).解析手段方面。
JSON和XML同样拥有丰富的解析手段。
(7).数据体积方面。
JSON相对于XML来讲,数据的体积小,传递的速度更快些。
(8).数据交互方面。
JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。
(9).数据描述方面。
JSON对数据的描述性比XML较差。
(10).传输速度方面。
JSON的速度要远远快于XML。