All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gitee.apanlh.util.net.http.HttpUtils Maven / Gradle / Ivy

There is a newer version: 2.0.0.2
Show newest version
package com.gitee.apanlh.util.net.http;

import com.gitee.apanlh.util.dataformat.JsonUtils;
import com.gitee.apanlh.util.encode.CharsetCode;
import com.gitee.apanlh.util.valid.ValidParam;
import com.gitee.apanlh.web.http.HttpMethod;

import java.util.Map;

/**
 * 	HTTP工具类
 * 	
基于HttpClientBuilder封装基础HTTP调用 *
如果需要使用更复杂的HTTP调用,则使用{@link HttpClientBuilder}类 * #mark 方法重构 * @author Pan */ public class HttpUtils { /** * 构造函数 * * @author Pan */ private HttpUtils() { // 不允许外部实例 super(); } /** * GET请求(无参) * * @author Pan * @param url 请求地址 * @return String */ public static String sendGet(String url) { return sendGet(url, CharsetCode.UTF_8); } /** * GET请求(无参) *
自定义返回字符集 * * @author Pan * @param url 请求地址 * @param charset 字符集 * @return String */ public static String sendGet(String url, String charset) { return sendGet(url, null, charset); } /** * GET请求(带参) *
例如: {@code ?name=123&phone=456} * * @author Pan * @param 值类型 * @param url 请求地址 * @param paramMap 请求参数 * @return String */ public static String sendGet(String url, Map paramMap) { return sendGet(url, paramMap, CharsetCode.UTF_8); } /** * GET请求(带参) *
例如: {@code ?name=123&phone=456} * * @author Pan * @param 值类型 * @param url 请求地址 * @param paramMap 请求参数 * @param charset 字符集 * @return String */ public static String sendGet(String url, Map paramMap, String charset) { return HttpClientBuilder.builder(url).withBodyForm(paramMap).withCharset(charset).build().getStr(); } /** * GET请求(无参) *
返回byte[] *
可用于请求流相关 * * @author Pan * @param url 请求地址 * @return byte[] */ public static byte[] sendGetToByte(String url) { return sendGetToByte(url, null); } /** * GET请求(无参) *
返回byte[] *
可用于请求流相关 *
自定义请求头 * * @author Pan * @param url 请求地址 * @param httpHeader 请求头对象 * @return byte[] */ public static byte[] sendGetToByte(String url, HttpRequestHeader httpHeader) { return HttpClientBuilder.builder(url).withHeader(httpHeader).build().getByte(); } /** * POST请求(空参数) *
默认字符集UTF-8 * * @author Pan * @param url 请求地址 * @return String */ public static String sendPost(String url) { return sendPost(url, null, null, null); } /** * POST请求(带参) *
请求参数格式为JSON *
默认字符集UTF-8 * * @author Pan * @param url 请求地址 * @param jsonParam JSON格式参数 * @return String */ public static String sendPost(String url, String jsonParam) { return sendPost(url, null, jsonParam, null); } /** * POST请求(带参) *
请求参数格式为JSON *
默认字符集UTF-8 *
自定义字符集 * * @author Pan * @param url 请求地址 * @param jsonParam JSON格式参数 * @param charset 字符集 * @return String */ public static String sendPost(String url, String jsonParam, String charset) { return sendPost(url, null, jsonParam, charset); } /** * POST请求(带参) *
请求参数格式为JSON *
自定义请求头 *
自定义字符集 * * @author Pan * @param url 请求地址 * @param httpHeader 请求头对象 * @param jsonParam JSON格式参数 * @param charset 字符集 * @return String */ public static String sendPost(String url, HttpRequestHeader httpHeader, String jsonParam, String charset) { return HttpClientBuilder.builder(url, HttpMethod.POST) .withHeader(httpHeader) .withBodyJson(jsonParam) .withCharset(charset) .build().getStr(); } /** * POST请求(带参) *
请求参数格式为JSON *
默认字符集UTF-8 * * @author Pan * @param 数据类型 * @param url 请求地址 * @param jsonParam JSON格式参数 * @param clazz 转换对象 * @return T */ public static T sendPostJsonToBean(String url, String jsonParam, Class clazz) { return sendPostJsonToBean(url, null, jsonParam, CharsetCode.UTF_8, clazz); } /** * POST请求(带参) *
请求参数格式为JSON *
默认字符集UTF-8 *
自定义字符集 * * @author Pan * @param 数据类型 * @param url 请求地址 * @param jsonParam JSON格式参数 * @param charset 字符集 * @param clazz 转换对象 * @return T */ public static T sendPostJsonToBean(String url, String jsonParam, String charset, Class clazz) { return sendPostJsonToBean(url, null, jsonParam, charset, clazz); } /** * POST请求(带参) *
请求参数格式为JSON *
默认字符集UTF-8 *
自定义字符集 *
自定义请求头 * * @author Pan * @param 数据类型 * @param url 请求地址 * @param httpHeader 请求头对象 * @param jsonParam JSON格式参数 * @param charset 字符集 * @param clazz 转换对象 * @return T */ public static T sendPostJsonToBean(String url, HttpRequestHeader httpHeader, String jsonParam, String charset, Class clazz) { HttpResponse build = HttpClientBuilder.builder(url, HttpMethod.POST) .withHeader(httpHeader) .withBodyJson(jsonParam) .withCharset(charset) .build(); String content = build.getStr(); return ValidParam.isEmpty(content) ? null : JsonUtils.toBean(content, clazz); } /** * POST请求(带参) *
请求方式为NameValuePair格式(值对节点类型) *
非传递JSON格式 *
例如:{@code name=123&phone=456} *
字符集默认为UTF-8 * * @author Pan * @param 值类型 * @param url 请求地址 * @param paramMap 请求参数 * @return String */ public static String sendPostForm(String url, Map paramMap) { return sendPostForm(url, paramMap, CharsetCode.UTF_8); } /** * POST请求(带参) *
请求方式为NameValuePair格式(值对节点类型) *
非传递JSON格式 *
例如:{@code name=123&phone=456} *
自定义字符集 * * @author Pan * @param 值类型 * @param url 请求地址 * @param paramMap 请求参数 * @param charset 字符集 * @return String */ public static String sendPostForm(String url, Map paramMap, String charset) { return HttpClientBuilder.builder(url, HttpMethod.POST).withBodyForm(paramMap).withCharset(charset).build().getStr(); } /** * post请求(无参) *
返回byte[] *
可用于请求流相关 *
默认字符集UTF-8 * * @author Pan * @param url 请求地址 * @return byte[] */ public static byte[] sendPostToByte(String url) { return sendPostToByte(url, null, null, null); } /** * post请求(带参) *
返回byte[] *
可用于请求流相关 * * @author Pan * @param url 请求地址 * @param jsonParam 请求参数 * @param charset 字符集 * @return byte[] */ public static byte[] sendPostToByte(String url, String jsonParam, String charset) { return sendPostToByte(url, null, jsonParam, charset); } /** * post请求(带参) *
返回byte[] *
可用于请求流相关 * * @author Pan * @param url 请求地址 * @param httpHeader 请求头对象 * @param jsonParam 请求参数 * @param charset 字符集 * @return byte[] */ public static byte[] sendPostToByte(String url, HttpRequestHeader httpHeader, String jsonParam, String charset) { return sendToByte(url, HttpMethod.POST, httpHeader, jsonParam, charset); } /** * GET以及POST通用封装 *
用于请求或接受流 *
返回byte[] * * @author Pan * @param url 请求地址 * @param method 请求方法 * @param httpHeader 请求头对象 * @param jsonParam 请求参数 * @param charset 请求参数字符集 * @return byte[] */ private static byte[] sendToByte(String url, HttpMethod method, HttpRequestHeader httpHeader, String jsonParam, String charset) { return HttpClientBuilder.builder(url, method) .withBodyJson(jsonParam) .withHeader(httpHeader) .withCharset(charset) .build().getByte(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy