package com.dsh.utils;
|
|
import com.alibaba.fastjson.JSONObject;
|
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.LogFactory;
|
import org.apache.http.NameValuePair;
|
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
import org.apache.http.client.methods.HttpGet;
|
import org.apache.http.client.methods.HttpPost;
|
import org.apache.http.client.utils.URIBuilder;
|
import org.apache.http.entity.ContentType;
|
import org.apache.http.entity.StringEntity;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.message.BasicNameValuePair;
|
import org.apache.http.util.EntityUtils;
|
|
import java.io.*;
|
import java.net.HttpURLConnection;
|
import java.net.URI;
|
import java.net.URL;
|
import java.net.URLConnection;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author 张鹏
|
* @date 2020/8/31 17:59
|
* http util
|
*/
|
public class HttpTemplate {
|
|
private static Log logger = LogFactory.getLog(HttpTemplate.class);
|
|
|
/**
|
* 向指定URL发送GET方式的请求
|
* @param url 发送请求的URL
|
* @param param 请求参数
|
* @return URL 代表远程资源的响应
|
*/
|
public static String sendGet(String url, String param){
|
String result = "";
|
String urlName = url;
|
if (param.length() != 0) {
|
urlName = url + "?" + param;
|
}
|
try{
|
URL realUrl = new URL(urlName);
|
//打开和URL之间的连接
|
URLConnection conn = realUrl.openConnection();
|
//设置通用的请求属性
|
conn.setRequestProperty("accept", "*/*");
|
conn.setRequestProperty("connection", "Keep-Alive");
|
conn.setRequestProperty("user-agent",
|
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
//建立实际的连接
|
conn.connect();
|
//获取所有的响应头字段
|
Map<String,List<String>> map = conn.getHeaderFields();
|
//遍历所有的响应头字段
|
for (String key : map.keySet()) {
|
System.out.println(key + "-->" + map.get(key));
|
}
|
// 定义 BufferedReader输入流来读取URL的响应
|
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
|
String line;
|
while ((line = in.readLine()) != null) {
|
result += line;
|
}
|
} catch (Exception e) {
|
System.out.println("发送GET请求出现异常" + e);
|
e.printStackTrace();
|
logger.error("/HttpTemplate/sendGet",e);
|
}
|
return result;
|
|
|
}
|
|
/**
|
* 向指定URL发送POST方式的请求
|
* @param url 发送请求的URL
|
* @param param 请求参数
|
* @return URL 代表远程资源的响应
|
*/
|
public static String sendPost(String url, String param){
|
String result = "";
|
try{
|
URL realUrl = new URL(url);
|
//打开和URL之间的连接
|
URLConnection conn = realUrl.openConnection();
|
//设置通用的请求属性
|
conn.setRequestProperty("accept", "*/*");
|
conn.setRequestProperty("connection", "Keep-Alive");
|
conn.setRequestProperty("user-agent",
|
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
conn.setRequestProperty("Content-Type","application/json");
|
//发送POST请求必须设置如下两行
|
conn.setDoOutput(true);
|
conn.setDoInput(true);
|
//获取URLConnection对象对应的输出流
|
PrintWriter out = new PrintWriter(conn.getOutputStream());
|
//发送请求参数
|
out.print(param);
|
//flush输出流的缓冲
|
out.flush();
|
// 定义 BufferedReader输入流来读取URL的响应
|
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
|
String line;
|
while ((line = in.readLine()) != null) {
|
result += "\n" + line;
|
}
|
} catch (Exception e) {
|
System.out.println("发送POST请求出现异常" + e);
|
e.printStackTrace();
|
logger.error("/HttpTemplate/sendPost",e);
|
}
|
return result;
|
}
|
|
}
|