一、hutool工具包实现
1、get请求
// url:链接地址,params:填充在url中的参数, useProxy:是否使用代理
// proxyHost:代理地址, proxyPort:代理端口号
public String httpGet(String url, String params, String useProxy) {
String requestUrl = url;
if (StringUtils.isNotBlank(params)) {
requestUrl = url + "?" + params;
}
String respData = null;
log.info("httpGet req is 【{}】", params);
HttpRequest httpRequest = HttpRequest.get(requestUrl).timeout(socketTimeout).header("token",
"application/json");
if ("Y".equalsIgnoreCase(useProxy)) {
log.info(String.format("使用代理"));
httpRequest.setProxy(new Proxy(Proxy.Type.HTTP,
new InetSocketAddress(proxyHost, Integer.parseInt(proxyPort))));
}
respData = httpRequest.execute().body();
log.info(String.format("HttpsUtil:httpGet | 请求信息:%s | 响应信息: %s", httpRequest.getUrl(), respData));
return respData;
}
2、post请求
// url:链接地址,params:填充在url中的参数, sendBodyData:body, useProxy:是否使用代理
// proxyHost:代理地址, proxyPort:代理端口号
public String httpPost(String url, String params, String sendBodyData, String useProxy) {
String requestUrl = url;
if (StringUtils.isNotBlank(params)) {
requestUrl = url + "?" + params;
}
String respData = null;
log.info("httpPost req is 【{}】", sendBodyData);
HttpRequest httpRequest = HttpRequest.post(requestUrl).timeout(socketTimeout).header("Content-Type", "application/json");
if ("Y".equalsIgnoreCase(useProxy)) {
log.info(String.format("使用代理"));
httpRequest.setProxy(new Proxy(Proxy.Type.HTTP,
new InetSocketAddress(proxyHost, Integer.parseInt(proxyPort))));
}
if (StringUtils.isNotBlank(sendBodyData)) {
httpRequest.body(sendBodyData);
}
respData = httpRequest.execute().body();
log.info(String.format("HttpsUtil:httpPost | 请求信息:%s | 响应信息: %s", httpRequest.getUrl(), respData));
return respData;
}
二、java net实现
1、java中http协议调用get请求
package com.bjbn.app.tianfu.mq.util;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class GetMessage {
public static String getHttpRequestData(String data) {
// 首先抓取异常并处理
String returnString = "1";
try{
// 代码实现以GET请求方式为主,POST跳过
/** 1 GET方式请求数据 start*/
StringBuilder sb = new StringBuilder();
String urlP = "http://localhost:8500/main/dataAnalysis?data=";
sb.append(urlP);
data = URLEncoder.encode(data,"UTF-8");
sb.append(data);
// 1 创建URL对象,接收用户传递访问地址对象链接
URL url = new URL(sb.toString());
// 2 打开用户传递URL参数地址
HttpURLConnection connect = (HttpURLConnection) url.openConnection();
// 3 设置HTTP请求的一些参数信息
connect.setRequestMethod("GET"); // 参数必须大写
connect.connect();
// 4 获取URL请求到的数据,并创建数据流接收
InputStream isString = connect.getInputStream();
// 5 构建一个字符流缓冲对象,承载URL读取到的数据
BufferedReader isRead = new BufferedReader(new InputStreamReader(isString));
// 6 输出打印获取到的文件流
String str = "";
while ((str = isRead.readLine()) != null) {
str = new String(str.getBytes(),"UTF-8"); //解决中文乱码问题
// System.out.println("文件解析打印:");
// System.out.println(str);
returnString = str;
}
// 7 关闭流
isString.close();
connect.disconnect();
// 8 JSON转List对象
// do somthings
}catch(Exception e){
e.printStackTrace();
}
return returnString;
}
public static void main(String[] args) {
String data = "111111";
String httpRequestData = getHttpRequestData(data);
System.out.println(httpRequestData);
}
}
2、java中https协议调用get请求
import javax.net.ssl.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
public class HttpUtils1 {
private static final String ENCODING = "UTF-8";
public static void main(String args[]) {
// get方式调用接口
String resultString = httpGet("https://xxxxx?systemCode=1&apiCode=1&accessCode=xxxx");
// 获取接口信息
System.out.println(resultString);
}
final static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
};
/**
* Trust every server - dont check for any certificate
*/
private static void trustAllHosts() {
final String TAG = "trustAllHosts";
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[] {};
}
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
} };
// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
e.printStackTrace();
}
}
public static String httpGet(String httpUrl) {
BufferedReader input = null;
StringBuilder sb = null;
URL url = null;
HttpURLConnection con = null;
try {
url = new URL(httpUrl);
try {
// trust all hosts
trustAllHosts();
HttpsURLConnection https = (HttpsURLConnection)url.openConnection();
if (url.getProtocol().toLowerCase().equals("https")) {
https.setHostnameVerifier(DO_NOT_VERIFY);
con = https;
} else {
con = (HttpURLConnection)url.openConnection();
}
input = new BufferedReader(new InputStreamReader(con.getInputStream()));
sb = new StringBuilder();
String s;
while ((s = input.readLine()) != null) {
sb.append(s).append("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e1) {
e1.printStackTrace();
} finally {
// close buffered
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}}
// disconnecting releases the resources held by a connection so they may be closed or reused
if (con != null) {
con.disconnect();
}
}
return sb == null ? null : sb.toString();
}
}
版权声明:本文为m0_53077601原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。