解决JAVA请求HTTPS接口需要验证问题

 最近做项目,由于安全性问题,由原来的http接口改为了https的接口,那么原来写的java调用http接口的工具类就不能够使用了,上网查找资料,折腾了半天,终于搞定了,详细代码如下:

package com.cnmts.util;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.httpclient.protocol.Protocol;
import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
import org.apache.commons.httpclient.HttpClient;  


public class HttpsRequestUtil{


    public static String httpRequest(String requestUrl) {
        try{
            ProtocolSocketFactory fcty = new MySecureProtocolSocketFactory();
            Protocol.registerProtocol("https", new Protocol("https", fcty, 443));
            HttpClient httpClient = new HttpClient();
           //设置httpclient读取内容时使用的字符集    
            httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"UTF-8");            
            //创建GET方法的实例    
            GetMethod getMethod = new GetMethod(requestUrl);   
            getMethod.addRequestHeader("Content-Type","text/html;charset=UTF-8");   
            //执行Get方法并取得返回状态码,200表示正常,其它代码为异常    
            int statusCode = httpClient.executeMethod(getMethod);  
            System.out.println("statusCode:"+statusCode);
            InputStream is = getMethod.getResponseBodyAsStream();  
            BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));  
            StringBuffer response = new StringBuffer();  
            String readLine;  
            while (((readLine = br.readLine()) != null)) {  
                response.append(readLine);  
            }  
            System.out.print(response);
            return response.toString();
        }
        catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值