美文网首页
java 使用http&&https

java 使用http&&https

作者: bigCongCong | 来源:发表于2018-07-30 17:17 被阅读0次

1.http

public static StringhttpRequest(String requestUrl,String requestMethod,String outputStr){

StringBuffer buffer=null;

    try{

URL url=new URL(requestUrl);

        HttpURLConnection conn=(HttpURLConnection)url.openConnection();

        conn.setDoOutput(true);

        conn.setDoInput(true);

        conn.setRequestMethod(requestMethod);

        conn.connect();

        //往服务器端写内容 也就是发起http请求需要带的参数

        if(null!=outputStr){

OutputStream os=conn.getOutputStream();

            os.write(outputStr.getBytes("utf-8"));

            os.close();

        }

//读取服务器端返回的内容

        InputStream is=conn.getInputStream();

        InputStreamReader isr=new InputStreamReader(is,"utf-8");

        BufferedReader br=new BufferedReader(isr);

        buffer=new StringBuffer();

        String line=null;

        while((line=br.readLine())!=null){

buffer.append(line);

        }

}catch(Exception e){

e.printStackTrace();

    }

return buffer.toString();

}

2.https

public static StringhttpsRequest(String requestUrl,String requestMethod,String outputStr){

StringBuffer buffer=null;

    try{

//创建SSLContext

        SSLContext sslContext=SSLContext.getInstance("SSL");

        TrustManager[] tm={new MyX509TrustManager()};

        //初始化

        sslContext.init(null, tm, new java.security.SecureRandom());;

        //获取SSLSocketFactory对象

        SSLSocketFactory ssf=sslContext.getSocketFactory();

        URL url=new URL(requestUrl);

        HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();

        conn.setDoOutput(true);

        conn.setDoInput(true);

        conn.setUseCaches(false);

        conn.setRequestMethod(requestMethod);

        //设置当前实例使用的SSLSoctetFactory

        conn.setSSLSocketFactory(ssf);

        conn.connect();

        //往服务器端写内容

        if(null!=outputStr){

OutputStream os=conn.getOutputStream();

            os.write(outputStr.getBytes("utf-8"));

            os.close();

        }

//读取服务器端返回的内容

        InputStream is=conn.getInputStream();

        InputStreamReader isr=new InputStreamReader(is,"utf-8");

        BufferedReader br=new BufferedReader(isr);

        buffer=new StringBuffer();

        String line=null;

        while((line=br.readLine())!=null){

buffer.append(line);

        }

}catch(Exception e){

e.printStackTrace();

    }

return buffer.toString();

}

ssl类

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

import javax.net.ssl.X509TrustManager;

public class MyX509TrustManagerimplements X509TrustManager {

@Override

    public void checkClientTrusted(X509Certificate[] chain, String authType)

throws CertificateException {

// TODO Auto-generated method stub

    }

@Override

    public void checkServerTrusted(X509Certificate[] chain, String authType)

throws CertificateException {

// TODO Auto-generated method stub

    }

@Override

    public X509Certificate[]getAcceptedIssuers() {

// TODO Auto-generated method stub

        return null;

    }

}

3.test

public static void main(String[] args){

String s=httpRequest("https://tpkapi.xihaiannews.com/token/get?appId=1&tamp=12315454564321&sign=hfashgk5335fasdf","GET",null);

    System.out.println(s);

}

转自:https://blog.csdn.net/guozili1/article/details/53995121

相关文章

网友评论

      本文标题:java 使用http&&https

      本文链接:https://www.haomeiwen.com/subject/xhnfvftx.html