zoukankan      html  css  js  c++  java
  • JAVA代码(GET方式)请求URL(HTTP,HTTPS)

     需要先引入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;
        }
    }
  • 相关阅读:
    分析存储过程重编译的起因以及避免
    存储过程重编译的优点、缺点、确定引发语句
    运用计划缓冲的建议
    查询计划Hash和查询Hash
    执行计划的重用
    执行计划组件、组件、老化
    执行计划的生成
    统计的基本操作语法 <第五篇>
    javascript 之 location.href、跨窗口调用函数
    git 删除远程分支和本地分支
  • 原文地址:https://www.cnblogs.com/pxblog/p/10524167.html
Copyright © 2011-2022 走看看