HttpURLConnection的使用方法

HttpURLConnection的流程

1.先要接收想要连接网址的地址

String urlStr = "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5";//以这个网址为例
URL url = new URL(urlStr);

2.得到一个url对象,用这个对象来打开连接

 //打开url连接
 HttpURLConnection conn = (HttpURLConnection) url.openConnection();

3.得到的连接需要设置一些属性

//请求的方法
conn.setRequestMethod("GET");//以get为例
//设置主机连接超时(单位:毫秒)
// 发送请求端 连接到 url目标地址端的时间   受距离长短和网络速度的影响
conn.setConnectTimeout(15000);
//设置从主机读取数据超时(单位:毫秒)
// 连接成功后 获取数据的时间   受数据量和服务器处理数据的影响
conn.setReadTimeout(60000);
//设置请求参数  可以指定接收json参数  服务端的key为content-type
conn.setRequestProperty("Accept","application/json");
//发送请求
conn.connect();

4.连接成功后,需要一个输入流来把网页上的内容读取到服务端

//获取响应码 如果响应码为200 表示请求成功 然后可以读取数据
//获取输入流  然后读取数据
InputStream inputStream = conn.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));

5.获取到流对象之后需要逐行读取数据

//逐行读取数据
            String line;//用来读取数据
            //使用bufferedReader来把每一行读取的数据拼接起来
            //这里以JSON数据为例
            BuffererBuilder result = new BufferedBuilder();
            while ((line = bufferedReader.readLine()) != null) {
                result.append(line);
                //System.out.print(line);
            }

6.获取到想要的数据之后,关闭各种流

				if (bufferedReader != null) {
                    bufferedReader.close();
                }
                if (inputStream != null) {
                    inputStream.close();
                }

7.完整的流程

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;

public class HttpURLConnectionUtil {



    public static String getNetData(String urlStr) {
        HttpURLConnection conn = null;

        //连接成功后我们是要读取数据的   所以要有一个输入流
        InputStream inputStream = null;

        // 因为读取的都是文本信息  所以使用BufferedReader
        BufferedReader bufferedReader = null;

        //StringBuilder来把接收到的数据拼接起来
        StringBuilder result = new StringBuilder();
        try {
            // 读取初始url 并且创建对象
            URL url = new URL(urlStr);
            //打开url连接
            conn = (HttpURLConnection) url.openConnection();
            //设置连接
            //请求的方法
            conn.setRequestMethod("GET");
            //设置主机连接超时(单位:毫秒)
            // 发送请求端 连接到 url目标地址端的时间   受距离长短和网络速度的影响
            conn.setConnectTimeout(15000);
            //设置从主机读取数据超时(单位:毫秒)
            // 连接成功后 获取数据的时间   受数据量和服务器处理数据的影响
            conn.setReadTimeout(60000);

            //设置请求参数  可以指定接收json参数  服务端的key为content-type
            conn.setRequestProperty("Accept","application/json");

            //发送请求
            conn.connect();

            //获取响应码 如果响应码不为200 表示请求不成功
            if (conn.getResponseCode() != 200) {
                //todo  此处应该增加异常处理手段
                return "请求失败!!!";
            }

            //获取响应码 如果响应码为200 表示请求成功 然后可以读取数据
            //获取输入流  然后读取数据
            inputStream = conn.getInputStream();
            bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));

            //逐行读取数据
            String line;//用来读取数据
            while ((line = bufferedReader.readLine()) != null) {
                result.append(line);
                //System.out.print(line);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭各种流
            try {
                if (bufferedReader != null) {
                    bufferedReader.close();
                }
                if (inputStream != null) {
                    inputStream.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        return result.toString();
    }
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值