package com.ruoyi.common.utils.http;
|
|
import java.io.*;
|
import java.net.URLEncoder;
|
import java.nio.charset.StandardCharsets;
|
import javax.servlet.ServletRequest;
|
import org.apache.commons.lang3.exception.ExceptionUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
import static java.util.Collections.replaceAll;
|
|
/**
|
* 通用http工具封装
|
*
|
* @author ruoyi
|
*/
|
public class HttpHelper
|
{
|
private static final Logger LOGGER = LoggerFactory.getLogger(HttpHelper.class);
|
|
/**
|
* url编码 + 空格替换为 %20 %3A 替换为 : 主要是处理时间转换问题
|
* @param str
|
* @param charset
|
* @return
|
* @throws UnsupportedEncodingException
|
*/
|
public static String UrlEncode(String str, String charset) throws UnsupportedEncodingException {
|
return URLEncoder.encode(str, charset).replaceAll("\\+", "%20").replaceAll("%3A", ":");
|
}
|
|
public static String getBodyString(ServletRequest request)
|
{
|
StringBuilder sb = new StringBuilder();
|
BufferedReader reader = null;
|
try (InputStream inputStream = request.getInputStream())
|
{
|
reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
|
String line = "";
|
while ((line = reader.readLine()) != null)
|
{
|
sb.append(line);
|
}
|
}
|
catch (IOException e)
|
{
|
LOGGER.warn("getBodyString出现问题!");
|
}
|
finally
|
{
|
if (reader != null)
|
{
|
try
|
{
|
reader.close();
|
}
|
catch (IOException e)
|
{
|
LOGGER.error(ExceptionUtils.getMessage(e));
|
}
|
}
|
}
|
return sb.toString();
|
}
|
}
|