HttpClient 和 codec的使用

个人博客:https://damanyang.cn/

HttpClient

Http是目前非常广泛的一个协议,有时候我们想要用java发送http请求,比如做GitHub的OAuth登录时。

我们除了可以用java提供的库以外,笔者还推荐HttpClient库。

  • 引入依赖

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

    (这是apache的开源库)

  • 以发送一个GET请求为例

    // 获得Http客户端(可以理解为:你得先有一个浏览器;注意:实际上HttpClient与浏览器是不一样的)
        static CloseableHttpClient httpClient = HttpClientBuilder.create().build();
    
    public void example(){
        //需要try catch捕捉异常
        try {
        	//请求url
        	HttpGet httpGet = new HttpGet("https://api.xxx.cn/xxx");
        	//执行请求并把响应数据赋值给response
        	CloseableHttpResponse response = httpClient.execute(httpGet);
        	//状态码
        	System.out.println("status: " + response.getStatusLine());
        	//获取响应数据
        	HttpEntity httpEntity = response.getEntity();
        	//输出数据
    		System.out.println("data: " + EntityUtils.toString(httpEntity) );
        	}catch (IOException e) {
    			e.printStackTrace();
            } finally {
                try {
                    // 释放资源
                    if (httpClient != null) {
                        httpClient.close();
                    }
                    if (response != null) {
                        response.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    }
    

    至此就完成一个http请求

    另,一般api返回的是json格式数据,SpringBoot可以使用集成的Jackson,也可以使用阿里的FastJson来获取数据。此处不展开

加密字符串

当涉及到一些隐私/重要数据时,我们通常需要加密字符串,比如用户的密码(本站密码使用了加密,安全性请放心)

apache的codec库
  • 引入依赖

    <dependency>
    	<groupId>commons-codec</groupId>
    	<artifactId>commons-codec</artifactId>
    	<version>1.11</version>
    </dependency>
    
  • MD5加密

    //散列算法,只可加密,不可解密
    String md5Hex = DigestUtils.md5Hex("你要加密的字符串");
    
  • Base64

    Base64 base64 = new Base64();
    //加密
    String s1 = base64.encodeToString("你要加密的字符串".getBytes());
    //解密
    String s2 = new String(base64.decode("你要解密的字符串"));
    
  • SHA256

    //散列算法,只可加密,不可解密
    String s = DigestUtils.sha256Hex("你要加密的字符串");
    

    个人博客:https://damanyang.cn/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值