java sends instances of http and https requests

  • 2020-12-13 18:59:30
  • OfStack

HTTP request:

If you need Json format to turn down, Baidu N postures...


// To deal with http request  requestUrl Is the request address  requestMethod Request mode, value is "GET" or "POST" 
  public static String httpRequest(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(); 
    // Write to the server side   Which is the initiation http The parameters that the request needs to take  
    if(null!=outputStr){ 
      OutputStream os=conn.getOutputStream(); 
      os.write(outputStr.getBytes("utf-8")); 
      os.close(); 
    } 
    // Read the content returned from the server side  
    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(); 
  } 

HTTPS request:

1. The difference between https and http is not explained here. If you want to access the https link in java, you need the corresponding SSL certificate. If you don't have the certificate, you can't access it. java comes with X509TrustManger interface, code:


import java.security.cert.CertificateException; 
import java.security.cert.X509Certificate; 
import javax.net.ssl.X509TrustManager; 
public class MyX509TrustManager implements 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; 
  } 
} 

2. Then we can use the https request:


/* 
 *  To deal with https GET/POST request  
 *  Request address, request method, parameters  
 * */ 
public static String httpsRequest(String requestUrl,String requestMethod,String outputStr){ 
  StringBuffer buffer=null; 
  try{ 
  // create SSLContext 
  SSLContext sslContext=SSLContext.getInstance("SSL"); 
  TrustManager[] tm={new MyX509TrustManager()}; 
  // Initialize the  
  sslContext.init(null, tm, new java.security.SecureRandom());; 
  // To obtain SSLSocketFactory object  
  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); 
  // Sets the values used by the current instance SSLSoctetFactory 
  conn.setSSLSocketFactory(ssf); 
  conn.connect(); 
  // Write to the server side  
  if(null!=outputStr){ 
    OutputStream os=conn.getOutputStream(); 
    os.write(outputStr.getBytes("utf-8")); 
    os.close(); 
  } 
  // Read the content returned from the server side  
  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(); 
} 

Related articles: