编程语言
首页 > 编程语言> > java HttpURLConnection 使用记录

java HttpURLConnection 使用记录

作者:互联网

HttpURLConnection connection = null;
InputStream is = null;
BufferedReader br = null;
// 返回结果字符串
String result = null;
try {
    // 创建远程url连接对象
    URL url = new URL(httpurl);
    // 通过远程url连接对象打开一个连接,强转成httpURLConnection类
    connection = (HttpURLConnection) url.openConnection();
    // 设置连接方式:get
    connection.setRequestMethod("DELETE");
    // 设置连接主机服务器的超时时间:15000毫秒
    connection.setConnectTimeout(15000);
    // 设置读取远程返回的数据时间:60000毫秒
    connection.setReadTimeout(60000);
    // 发送请求
    connection.connect();
    // 通过connection连接,获取输入流
    if (connection.getResponseCode() == 200) {
        is = connection.getInputStream();
        // 封装输入流is,并指定字符集
        byte[] bytes = new byte[is.available()];
        is.read(bytes);
        result = new String(bytes, "UTF-8");
    }
} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
} finally {
    // 关闭资源
    if (null != br) {
        try {
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    if (null != is) {
        try {
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    connection.disconnect();// 关闭远程连接
}

1.HttpURLConnection对象不能直接构造,需要通过URL类中的openConnection方法类获得。
2.HttpURLConnection的connect()方法,建立与服务器的TCP连接,并没有实际发送HTTP请求,直到获取服务器响应数据时,才正式发送。
3.对HttpURLConnection对象的参数配置,都需要在connect()方法执行前完成。
4.HttpURLConnection是基于HTTP协议的,其底层是通脱socket通信实现的,如果不设置超时(timeout),在网络异常的情况下,可能会导致程序僵死,而不能继续往下执行。
 

标签:java,记录,printStackTrace,connection,catch,null,连接,HttpURLConnection
来源: https://blog.csdn.net/Erik_w/article/details/122809515