资源简介

Http请求Restful风格的远程调用,在远程调用的过程中会出现四种请求方式,这个工具把此部分代码给封装了一下。

资源截图

代码片段和文件信息

package com.dmsdbj.library.app.util;

import com.fasterxml.jackson.databind.objectMapper;
import org.apache.commons.lang3.StringUtils;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 

RestfulApi请求工具


 * 使用说明
 * @author lnk
 */
 public class RestfulHttpClient {
    /** 全局默认请求头 */
    private static final Map defaultHeaders = new HashMap<>();
    /** 全局默认请求头 */
    private static List initializers;
    private static final String charset = “UTF-8“;
    private static final int readTimeout = 60000;
    private static final int connectTimeout = 60000;

    public static final String METHOD_GET = “GET“;
    public static final String METHOD_POST = “POST“;
    public static final String METHOD_PUT = “PUT“;
    public static final String METHOD_PATCH = “PATCH“;
    public static final String METHOD_DELETE = “DELETE“;

    private RestfulHttpClient(){ }

    /**
     * 发起请求
     * @param method        请求方式:GET、POST、PUT、PATCH、DELETE
     * @param url           请求url
     * @param body          请求体body
     * @throws IOException
     */
    public static HttpResponse request(String method String url object body) throws IOException {
        return request(method url body defaultHeaders);
    }

    /**
     * 发起请求
     * @param method        请求方式:GET、POST、PUT、PATCH、DELETE
     * @param url           请求url
     * @param body          请求体body
     * @param headers       请求头
     * @throws IOException
     */
    public static HttpResponse request(String method String url object body Map headers) throws IOException {
        return getClient(url).method(method).body(body).headers(headers).request();
    }

    /**
     * 获取请求客户端
     * @param url
     * @return
     */
    public static HttpClient getClient(String url){
        return new HttpClient(url);
    }

    /**
     * 添加全局请求连接初始化器
     * @param initializer
     */
    public static void addInitializer(URLConnectionInitializer initializer){
        if(initializer == null){
            throw new NullPointerException(“不能添加空的连接初始化器“);
        }
        if(initializers == null){
            initializers = new ArrayList<>();
        }
        initializers.add(initializer);
    }

    /**
     * 请求客户端
     */
    public static class HttpClient{
        private Map headers;
        private int readTimeout = RestfulHttpClient.readTimeout;
        private int connectTimeout = RestfulHttpClient.connectTimeout;
        private String method = METHOD_GET;
        private String url;
        private Map pathParams;
        private Map queryParams;
        private Map postParams;
        priv

评论

共有 条评论