代码改变世界

网络请求数据

2016-04-12 08:40  涛涛王  阅读(181)  评论(0)    收藏  举报
public String getJsonFromWeb() {
        URL url = null;
        HttpURLConnection urlConn = null;
        BufferedReader br = null;
        StringBuffer sb = new StringBuffer();// 定义缓存字符串,拼装字符串
        try {
            url = new URL(JSON_URL);// 创建和服务器的连接对象URL
            urlConn = (HttpURLConnection) url.openConnection();// 打开连接
            urlConn.setConnectTimeout(5 * 1000);// 设置连接超时容忍时间
            urlConn.setReadTimeout(5 * 1000);// 设置读取时间
            if (urlConn.getResponseCode() == 200) {// 如果相应码为200表示响应成功,并且同时成功的相应了数据
                // 获得服务器相应的数据,字节输入流(数据流),转换为缓存字符流便于读取
                br = new BufferedReader(new InputStreamReader(
                        urlConn.getInputStream(), "utf-8"));
                String str = null;
                while ((str = br.readLine()) != null) {// 一行行的读取,一行行的收集
                    sb.append(str);
                }
            }

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return sb.toString();// 转换为字符串,返回
    }



//获取网络列表
    public static String getWebColumn(String URL)
    {
        String data ="";
        //创建请求对象
        HttpGet httpGet = new HttpGet(URL);
        
        //设置参数
        HttpParams params=new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(params, 5000);
        HttpConnectionParams.setSoTimeout(params, 5000);
        //执行请求的对象
        HttpClient client=new DefaultHttpClient(params);
        //执行请求镀锡
        try {
            HttpResponse resp = client.execute(httpGet);
            
            //判断是否响应成功
            if(resp.getStatusLine().getStatusCode() == 200)
            {
                //获取响应 的数据
                HttpEntity entity = resp.getEntity();
                
                data = EntityUtils.toString(entity, "utf-8");
            }
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        return data;
    }
    //获取网络列表
    public static String getWebData(String URL,int p,String id)
    {
        StringBuffer sb=new StringBuffer(URL);
        sb.append("&catalog_id="+id);
        sb.append("&pn="+p);
        
        String data ="";
        //创建请求对象
        HttpGet httpGet = new HttpGet(sb.toString());
        //设置参数
        HttpParams params=new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(params, 5000);
        HttpConnectionParams.setSoTimeout(params, 5000);
        //执行请求的对象
        HttpClient client=new DefaultHttpClient(params);
        //执行请求镀锡
        try {
            HttpResponse resp = client.execute(httpGet);
            
            //判断是否响应成功
            if(resp.getStatusLine().getStatusCode() == 200)
            {
                //获取响应 的数据
                HttpEntity entity = resp.getEntity();
                
                data = EntityUtils.toString(entity, "utf-8");
            }
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        return data;
    }