JAVA代码(GET方式)请求URL(HTTP,HTTPS)
使用jdk1.8和tomcat8环境
需要先引入jar或者依赖
package com.geturl; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import javax.net.ssl.*; import javax.servlet.http.HttpServletRequest; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.URL; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; public class PostUtil { /** * * @param url 这个只支持http地址,不支持https * @param request * @return */ public static String sendMessage(String url, HttpServletRequest request) { CloseableHttpClient httpClient = HttpClientBuilder.create().build(); HttpGet httpGet = new HttpGet(url); //url:请求地址 get请求 httpGet.addHeader(HTTP.CONTENT_TYPE, "application/json;charset=UTF-8"); try { HttpResponse res = httpClient.execute(httpGet); String rtn = EntityUtils.toString(res.getEntity()); return rtn; } catch (Exception e) { e.printStackTrace(); } finally { httpGet.releaseConnection(); } return null; } /** * * * @param url 支持https格式 get请求 * @return 返回json格式 */ public static JSONObject getHttps(String hsUrl) { try { URL url; url = new URL(hsUrl); HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); X509TrustManager xtm = new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { // TODO Auto-generated method stub return null; } @Override public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { // TODO Auto-generated method stub } @Override public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { // TODO Auto-generated method stub } }; TrustManager[] tm = {xtm}; SSLContext ctx = SSLContext.getInstance("TLS"); ctx.init(null, tm, null); con.setSSLSocketFactory(ctx.getSocketFactory()); con.setHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String arg0, SSLSession arg1) { return true; } }); InputStream inStream = con.getInputStream(); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = inStream.read(buffer)) != -1) { outStream.write(buffer, 0, len); } byte[] b = outStream.toByteArray();//网页的二进制数据 outStream.close(); inStream.close(); String rtn = new String(b, "utf-8"); if (StringUtils.isNotBlank(rtn)) { JSONObject object = JSONObject.fromObject(rtn); return object; } } catch (Exception e) { e.printStackTrace(); } return null; } }
package com.util; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import java.io.IOException; public class GetUrlUtils { /** * * * @param url 支持https格式 get请求 * @return 返回json格式 */ public static String getResponse(String url) { try { CloseableHttpClient httpClient = HttpClientBuilder.create().build(); HttpGet httpGet=new HttpGet(url); HttpResponse res = httpClient.execute(httpGet); String rtn = EntityUtils.toString(res.getEntity()); return rtn; } catch (IOException e) { e.printStackTrace(); } return null; } }
-----------------------有任何问题可以在评论区评论,也可以私信我,我看到的话会进行回复,欢迎大家指教------------------------
(蓝奏云官网有些地址失效了,需要把请求地址lanzous改成lanzoux才可以)