http客户端工具类 - 含完整代码及内部解析

文章目录

  • Http客户端工具
    • 用途及分析
    • 完整的代码段
  • 结束

Http客户端工具

文章目录
Maven打包Jar + Http向Url发送Get请求_lijiamin-的CSDN博客

前段时间,我写了一个非常简陋的Get请求的代码用于刷CSDN的访客量,但是那个玩意并不能用于实际工作中,因为它里面并没有包含什么其他的参数,只是简简单单的发起请求,但是在这几天的工作中,我有幸接触到了这篇代码,现将它刨析一番并分享给大家

用途及分析

顾名思义,是一个HTTP客户端工具,能通过代码方式发起get、post、put、delete请求,里面有如下几个方法

  1. 连接池初始化
  2. 连接保活(长连接)
  3. SSL绕过验证
  4. 请求创建
  5. 执行请求(GET\POST\PUT\DELETE)

关于请求,我们需要同时考虑到HTTP/HTTPS的情况,HTTPS采用了SSL的安全加密

http客户端工具类 - 含完整代码及内部解析_第1张图片

初始化的客户端,里面的传入实例defaultStrategy是HTTP长连接的配置

http客户端工具类 - 含完整代码及内部解析_第2张图片

接下来开始创建请求

http客户端工具类 - 含完整代码及内部解析_第3张图片

请求的执行我不太想写了,我去整其他东西了,完整的代码在下面

完整的代码段

使用方式

HttpClientPoolUtil.post(完整的请求地址, JSON字符串的请求数据, 请求头);

实际案例代码

public static void main(String[] args) throws Exception {
   
        String file = "D:\\Weather-local.txt";
        FileWriter fw = new FileWriter(file, true);
        while (true) {
   
            // 请求
            Map map = new HashMap<String, Object>();
            map.put("accept", "*/*");
            map.put("connection", "Keep-Alive");
            map.put("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
            map.put("Content-Type", "application/json;charset=utf-8");

            String strRes = HttpClientPoolUtil.get("http://t.weather.itboy.net/api/weather/city/101280601", map);
            // 写处理
            fw.append("当前时间:" + new Date() + "_____________" + strRes);
            fw.append("\n");
            fw.append("\n");
            fw.flush();
            System.out.println(new Date() + "----ok");
            Thread.sleep(900000);
        }
    }

原始代码

import org.apache.http.HeaderElement;
import org.apache.http.HeaderElementIterator;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.*;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.ConnectionKeepAliveStrategy;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.

你可能感兴趣的:(#,日程开发工具,http,https,java)