java访问https链接下载图片

这篇具有很好参考价值的文章主要介绍了java访问https链接下载图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

java访问https链接下载图片

一、通过maven引入https工具包

<dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.13</version>
    </dependency>

二、https链接下载文件工具类

package com.mhx.info.service;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContexts;
import org.junit.Test;

import java.io.FileOutputStream;
import java.io.InputStream;


/**
 * @Description: https文件链接下载文件
 * @BelongsProject: mhxFileDownload
 * @BelongsPackage: com.mhx.info.service
 * @ClassName: BatchDownloadFile
 * @Author: MHX
 * @CreateTime: 2022/11/25
 */
public class BatchDownloadFileTest {

    /**
     * https来获得
     *
     * @throws Exception 异常
     */
    @Test
    public void httpsToGet() throws Exception {
//        文件下载存储路径
        String savePath = "D:/zhxcmfs/myFiles";
//        文件命名
        String fileName = "图片.png";
//        https文件下载链接
        String apiHttp = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Flmg.jj20.com%2Fup%2Fallimg%2F1114%2F040221103339%2F210402103339-8-1200.jpg&refer=http%3A%2F%2Flmg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1671956738&t=7369439221c4fff3114c8cbaa28b4330";
//        忽略对服务器端证书的校验
        SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(),
                NoopHostnameVerifier.INSTANCE);
        CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(scsf).build();
        HttpGet httpget = new HttpGet(apiHttp);
        HttpResponse response = client.execute(httpget);
        HttpEntity entity = response.getEntity();
        InputStream is = entity.getContent();
//        对存储空间大小预定义
        int cache = 10 * 1024;
//        文件输出路径
        FileOutputStream fileout = new FileOutputStream(savePath + "/" + fileName);
        byte[] buffer = new byte[cache];
        int ch = 0;
        while ((ch = is.read(buffer)) != -1) {
            fileout.write(buffer, 0, ch);
        }
        is.close();
        fileout.flush();
        fileout.close();
    }
}

三、https链接下载文件工具类讲解

// 文件下载存储路径
String savePath = “D:/zhxcmfs/myFiles”;
// 文件命名
String fileName = “图片.png”;
// https文件下载链接
String apiHttp = “https://gimg2.baidu.com/image_search/src=http%3A%2F%2Flmg.jj20.com%2Fup%2Fallimg%2F1114%2F040221103339%2F210402103339-8-1200.jpg&refer=http%3A%2F%2Flmg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1671956738&t=7369439221c4fff3114c8cbaa28b4330”;
// 忽略对服务器端证书的校验
SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(),
NoopHostnameVerifier.INSTANCE);
CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(scsf).build();
HttpGet httpget = new HttpGet(apiHttp);
HttpResponse response = client.execute(httpget);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
// 对存储空间大小预定义
int cache = 10 * 1024;
// 文件输出路径
FileOutputStream fileout = new FileOutputStream(savePath + “/” + fileName);
byte[] buffer = new byte[cache];
int ch = 0;
while ((ch = is.read(buffer)) != -1) {
fileout.write(buffer, 0, ch);
}
is.close();
fileout.flush();
fileout.close();文章来源地址https://www.toymoban.com/news/detail-404406.html

到了这里,关于java访问https链接下载图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决:js 根据图片链接(image url)下载,有的打开预览,有的下载

    1、问题描述 https://*****/drugTestReport/20230515/202305151106111386737.png https://*****/drugTestReport/20230605/202306051540314553141.jpg 同样结构的两个图片链接,使用window.open(url),一个是打开预览,另一个是下载   2、解决方法,通过fetch请求url,获取blob类型,区分情况,统一成下载。  

    2024年02月09日
    浏览(39)
  • 微信小程序怎么通过图片链接获取图片宽高比(适合在下载图片前获取宽高比)

    在微信小程序中,可以通过 wx.getImageInfo 来获取图片链接的宽高信息: getImageInfo 是一个异步API,它会去下载图片并获取到图片的宽高信息。 主要步骤: 1. 通过 wx.getImageInfo 获取图片宽高 2. 在 success 回调中可以拿到 width 和 height 3. 将 width 除以 height 即可计算出宽高比 ratio 注意: -

    2024年02月03日
    浏览(54)
  • 图片链接或pdf链接通过浏览器打开时,有时可以直接预览,有时却是下载,为什么?

    在前端开发中,有时候需要对一些文件链接进行特殊处理,比如对于一些图片链接或者PDF链接,有时我们需要通过浏览器打开进行预览,有时又不希望通过浏览器进行打开,而是希望能够直接下载到本地。但现实效果却往往跟我们相反,我们希望浏览器打开时,他却直接下载

    2024年02月10日
    浏览(47)
  • 使用Fiddler工具抓取微信小程序中的图片,使用Fiddler工具抓取电脑访问的链接图片

    背景:          开发微信小程序的时候,是不是经常看到别人的小程序中某个图标或者图片好看想用,下面小编给大家分享一下怎么获得微信小程序中的图片。         官网:https://www.telerik.com/         下载地址1:Fiddler4_官方电脑版_51下载         下载地址

    2024年02月06日
    浏览(35)
  • uniapp微信小程序下载base64图片流或https图片

     常规https的图片下载是这样的 下面来说一下后端返回base64的文件流,是如何下载的 必须把返回的流去掉这一部分:data:image/png;base64,否则下载不了 如我自己的流:

    2024年02月04日
    浏览(33)
  • Python爬虫:利用JS逆向抓取携程网景点评论区图片的下载链接

    1. 前言 文章内容可能存在版权问题,为此,小编不提供相关实现代码,只是从js逆向说一说到底怎样实现这个的过程,希望能够帮助到那些正在做js逆向相关操作的读者,需要代码的读者单独私信我吧!不过,需要注意的是: 代码仅供学习,不能用于商业活动,望读者切记。

    2024年02月15日
    浏览(55)
  • 轻松搭建短域名短链接服务系统,可选权限认证,并自动生成证书认证把nginx的http访问转换为https加密访问,完整步骤和代码

    轻松搭建短域名短链接服务系统,可选权限认证,并自动生成证书认证把nginx的http访问转换为https加密访问,完整步骤和代码。 在互联网信息爆炸的时代,网址复杂而冗长,很难在口头告知他人,也难以分享到社交媒体上。因此,网址缩短服务应运而生。本文将介绍其中的一

    2024年01月23日
    浏览(29)
  • fastadmin 阿里云oss解决访问图片是下载

    阿里云oss的上传策略默认是公网访问是下载 需要去 修改插件里的这个文件 addons/alioss/libary/oss/core/MimeTypesw.php 如果之前的也想全部是浏览 找到对应图片文件 (阿里云不可以选文件,只能一个文件夹全选) 设置http content-type 设置成 image/jpg 这个是阿里云 oss 上传说明 这个是阿

    2024年02月16日
    浏览(29)
  • Java跳过证书访问HTTPS

    java直接发送请求访问https地址的时候,若没有导入证书,会出现各种问题,如307。 以下会以是否SpringBoot来解决这个问题,做法一致,都是绕过证书进行处理的。 创建一个请求代理类,为所有的HTTPS请求访问前做一下操作 先创建一个跳过证书验证,信任所有站点的请求客户端

    2024年02月04日
    浏览(30)
  • 【java】java访问https并验证账号密码

    java访问https,获取页面或者数据时,需要证书和账号密码的验证。 获取网站的证书,拿到证书后可能是crt格式,可以使用下面的命令转为p12格式 Mycert.crt是证书,Mykey.key是生成证书同时生成的key,最终转出Mycert.p12 比如访问如下地址 https://hf.anjuke.com/esf-ajax/community/pc/autocomple

    2024年02月07日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包