虽然github上有很多开源的,方便的jar报,用起来也很方便,但我们也需要了解其中的原理,如何自己不用第三方jar包来获取网络资源

主要代码如下:  因为联网是耗时的操作,所以需要另开一个线程来执行

 new Thread(){
public void run() {
try { //首先声明url连接对象
URL url=new URL(path);
//获取HttpURLConnection对象
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// connection.setReadTimeout(5000);
//设置连接超时时间,毫秒为单位
connection.setConnectTimeout(5000); //http方式
connection.setRequestMethod("GET"); //设置http头属性
connection.setRequestProperty("apikey", "0a37fe84ecb7c6fe98ca3e8ba48b5f24");
//获取返回码//200为正常 404 找不到资源
int code = connection.getResponseCode();
if(code==200){ //获取字节流
InputStream inputStream = connection.getInputStream();
//解析字节流
BufferedReader bf=new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
StringBuilder sb=new StringBuilder();
String s=null;
while ((s=bf.readLine())!=null) {
sb.append(s+"\r\n");
} //解析json对象
JSONObject jsonObject = new JSONObject(sb.toString());
JSONArray jsonArray = jsonObject.getJSONArray("newslist");
for (int i = 0; i < jsonArray.length(); i++) {
news n= new news();
JSONObject jsonObject2 = jsonArray.getJSONObject(i);
n.setTime(jsonObject2.getString("ctime"));
n.setTitle(jsonObject2.getString("title"));
n.setDescription(jsonObject2.getString("description"));
n.setPicUrl(jsonObject2.getString("picUrl"));
n.setUrl(jsonObject2.getString("url"));
list.add(n);
} }
} catch (Exception e) {
e.printStackTrace();
}
}; }.start();

自己写http获取网络资源和解析json数据的更多相关文章

  1. Google中Gson的使用解析json数据-------学习篇

    之前写过一篇Gson解析json数据的基本应用,这里不多说,直接上例子. 有兴趣的可以先阅读下之前那篇,这里附上链接: http://www.cnblogs.com/Ant-soldier/p/632 ...

  2. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

  3. [转]javascript eval函数解析json数据时为什加上圆括号eval("("+data+")")

    javascript eval函数解析json数据时为什么 加上圆括号?为什么要 eval这里要添加 “("("+data+")");//”呢?   原因在于: ...

  4. Android网络之数据解析----使用Google Gson解析Json数据

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. 通过Gson解析Json数据

    Json是一种数据格式,便于数据传输.存储.交换:Gson是一种组件库,可以把java对象数据转换成json数据格式. gson.jar的下载地址:http://search.maven.org/#s ...

  6. TypeToken 是google提供的一个解析Json数据的类库中一个类

    Type listType = new TypeToken<LinkedList<User>>(){}.getType(); Type是java里的reflect包的Type ...

  7. C#如何解析JSON数据(反序列化对象)

    第一章:C#如何拿到从http上返回JSON数据? 第二章:C#如何解析JSON数据?(反序列化对象) 第三章:C#如何生成JSON字符串?(序列化对象) 第四章:C#如何生成JSON字符串提交给接口 ...

  8. Android解析Json数据之Gson解析

    Gson是谷歌官方提供的解析json数据的工具类.json数据的解析能够使用JSONObject和JSONArray配合使用解析数据,可是这样的原始的方法对于小数据的解析还是有作用的,可是陪到了复杂数 ...

  9. 使用jQuery解析JSON数据

    我们先以解析上例中的comments对象的JSON数据为例,然后再小结jQuery中解析JSON数据的方法. 上例中得到的JSON数据如下,是一个嵌套JSON: {"comments&quo ...

随机推荐

  1. leetcode–Binary Tree Maximum Path Sum

    1.题目说明 Given a binary tree, find the maximum path sum.   The path may start and end at any node in t ...

  2. 恒天云技术分享系列4 – OpenStack网络攻击与防御

    恒天云技术分享系列:http://www.hengtianyun.com/download-show-id-13.html 云主机的网络结构本质上和传统的网络结构一致,区别大概有两点. 1.软网络管理 ...

  3. 【Hadoop代码笔记】Hadoop作业提交之客户端作业提交

    1.      概要描述仅仅描述向Hadoop提交作业的第一步,即调用Jobclient的submitJob方法,向Hadoop提交作业. 2.      详细描述Jobclient使用内置的JobS ...

  4. HW6.22

    import java.util.Arrays; public class Solution { public static void main(String[] args) { int[][] ch ...

  5. HW6.13

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  6. 你所不知道的五件事情--java.util.concurrent(第一部分)

                                                                这是Ted Neward在IBM developerWorks中5 things ...

  7. (贪心5.2.6)URAL 1014 Product of Digits(利用数据有序化进行贪心选择)

    /* * URAL_1014.cpp * * Created on: 2013年10月11日 * Author: Administrator */ #include <iostream> ...

  8. hql注意事项一

    Space is not allowed after parameter prefix ':' [from EmPaperCatalogDef e where e.parentId =: pcdId]

  9. asp.net webservice 跨域解决方法

    首先需要把[System.Web.Script.Services.ScriptService]前边的注释去掉,放开权限,其次需要在web.config 里<system.web节点下>添加 ...

  10. 从Web借鉴UI设计

    从Web借鉴UI设计 用户体验已经成为衡量应用软件质量的重要标准.在过去我们可能会惊叹于某个Web应用的华丽界面,现在,随着HTML5的强势登场,各类表现层技术及开发框架的发布,Web与窗体应用的界限 ...