这篇文章给大家分享的是有关如何实现java公众平台通用接口工具类HttpConnectUtil的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实例如下:package com.common.util;im
这篇文章给大家分享的是有关如何实现java公众平台通用接口工具类HttpConnectUtil的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
实例如下:
package com.common.util;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.ConnectException;import java.net.HttpURLConnection;import java.net.URL;import java.util.Date;import javax.net.ssl.httpsURLConnection;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSocketFactory;import javax.net.ssl.TrustManager;import javax.servlet.http.HttpServletRequest;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.common.weixin.access.util.MyX509TrustManager;public class HttpConnectUtil {private static Logger log = LoggerFactory.getLogger(HttpConnectUtil.class);public static String httpRequest(String requestUrl, String requestMethod, String outputStr) {String result = null;StringBuffer buffer = new StringBuffer();try {URL url = new URL(requestUrl);HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();// 设置通用的请求属性httpUrlConn.setRequestProperty("accept", "*public static String httpsRequest(String requestUrl, String requestMethod, String outputStr) throws Exception{String result = null;StringBuffer buffer = new StringBuffer();try { // 创建SSLContext对象,并使用我们指定的信任管理器初始化 TrustManager[] tm = { new MyX509TrustManager() }; SSLContext sslContext = SSLContext.getInstance("SSL", "SunjsSE"); sslContext.init(null, tm, new java.security.SecureRandom()); // 从上述SSLContext对象中得到SSLSocketFactory对象 SSLSocketFactory ssf = sslContext.getSocketFactory(); URL url = new URL(requestUrl); HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection(); httpUrlConn.setSSLSocketFactory(ssf); // 设置通用的请求属性httpUrlConn.setRequestProperty("accept", "*/*");httpUrlConn.setRequestProperty("connection", "Keep-Alive");httpUrlConn.setRequestProperty("Charset", "utf-8"); httpUrlConn.setDoOutput(true);httpUrlConn.setDoInput(true);httpUrlConn.setUseCaches(false);// 设置请求方式(GET/POST)httpUrlConn.setRequestMethod(requestMethod);if ("GET".equalsIgnoreCase(requestMethod))httpUrlConn.connect();// 当有数据需要提交时if (null != outputStr) {OutputStream outputStream = httpUrlConn.getOutputStream();// 注意编码格式,防止中文乱码outputStream.write(outputStr.getBytes("UTF-8"));outputStream.close();}// 将返回的输入流转换成字符串InputStream inputStream = httpUrlConn.getInputStream();InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String str = null;while ((str = bufferedReader.readLine()) != null) {buffer.append(str);}bufferedReader.close();inputStreamReader.close();// 释放资源inputStream.close();inputStream = null;httpUrlConn.disconnect();result = buffer.toString();//JSONObject = JSONObject.fromObject(buffer.toString());} catch (ConnectException ce) {log.error(requestUrl + " server connection timed out.");throw new Exception("连接服务器超时");} catch (Exception e) {log.error(requestUrl +" https request error:{}", e);throw new Exception("HTTPS请求错误");}return result;} public static String getIpAddr(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}return ip;} }
感谢各位的阅读!关于“如何实现java公众平台通用接口工具类HttpConnectUtil”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
--结束END--
本文标题: 如何实现java公众平台通用接口工具类HttpConnectUtil
本文链接: https://lsjlt.com/news/219846.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0