网络请求获取资源之HttpURLConnection的使用

网络请求获取资源之HttpURLConnection的使用

一、HttpUrlConnection简介
  • 官方开场,可跳过 >>>>>>>>>>>>>>>>>>>>>>>>*_*

访问网络资源可以说是开发过程中非常重要的一个环节,Android开发访问网络资源的需求是比较常见的,虽然java对于网络资源的访问需求不似Android如此频繁,但也是必不可少的,而当前,Http协议是Internet上使用最多,也最重要的网络协议,无可厚非,更多的java程序直接采用http请求访问网络资源

  • JDK的java.net包中提供了访问HTTP协议的基本功能的类:HttpURLConnection。
    HttpURLConnection是Java的标准类,它继承自URLConnection,可用于向指定Url发送GET请求、POST请求。它在URLConnection的基础上提供了更加便捷的方法
  • 同样进行网络请求的还有Apache的HttpClient,在此不加赘述,对比将另起博文
    值得一提的是,Google建议使用httpURLconnection进行网络访问操作。
  • 总结:HttpURLConnection基于Http协议,支持get,post,put,delete等各种请求方式,今天就简单走进一下HttpURLConnection的使用
二、代码示例:访问阿里云的一张图片,保存在临时文件中,后续使用可自行拓展
  /**
     * 将图片从阿里云服务器下载
     */
    @Override
    public void getLogoFromAli(String logoUrl) throws Exception {
        String fileUrl = logoUrl;
        URL url = new URL(fileUrl);
        HttpURLConnection urlCon = (HttpURLConnection) url.openConnection();
        urlCon.setRequestMethod("GET");
        urlCon.setConnectTimeout(6000);
        urlCon.setReadTimeout(6000);
        int code = urlCon.getResponseCode();
        if (code != HttpURLConnection.HTTP_OK) {
            throw new Exception("文件读取失败");
        }
        //读文件流
        File imgFile = null;
        InputStream inputStream = urlCon.getInputStream();

        try{
            //创建临时文件
            imgFile = File.createTempFile("tmp", ".jpg");
            FileUtils.copyInputStreamToFile(inputStream, imgFile);
            log.info("=================="+imgFile.length());
            if (imgFile.length()>1024*1024) {
                throw new Exception("文件超过1M,上传失败");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        /**
        *成功获取图片文件imgFile,资源使用自行拓展
        */
       log.info("我已经拿到图片啦哈哈哈哈================"+imgFile)
    }

三、主流程
  • new Url(),设置Url地址
  • 创建HttpUrlCollection
  • 设置链接相关参数如:请求方式,连接时间等
  • 获取响应资源
  • 资源处理
四、效果展示
  • 一张阿里云图片的地址如下
    图片在此
    单纯觉得很舒适的一张图,emmmm,工科口味,嘿哈
    阿里云图片示例
  • 采用postman调用一下示例代码的接口得到
    在这里插入图片描述
    哈哈哈,业务需求得到的文件不能超过1M,打扰了各位,此处容本猴过滤一下它,小插曲,无妨无妨
    最终得到的临时文件如下:
    在这里插入图片描述
    我们来看一下有没有成功获取该张图片资源
    在这里插入图片描述
    找到这张图打开
    在这里插入图片描述
    成功获取网络资源图片,至于这张图要怎么处理就是看在座各位的业务需求啦
五、后话但不是屁话
  1. 这里的资源为图片格式,所以此处创建临时文件格式为jpg格式,并不适用所有网络资源,具体开发,具体应变
  2. 这里的流是已经关闭了的,apache的工具类FileUtils的该方法是有关流操作的,所以不必手动关流
  3. 我只是一只可爱的小猴子,如果代码或者某些文字不正确实属正常,欢迎评论指出,我会虚心接受,但不接受恶意攻击滴
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值