ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java HttpURLConnection 使用记录

2022-02-07 15:34:06  阅读:280  来源: 互联网

标签:java 记录 printStackTrace connection catch null 连接 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有