Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package ConnectionProtccol; /** * * @author harsha-1916 */ import JSONParser.JSONOperations; import loggerapi.CustomLogger; import java.net.MalformedURLException; import java.net.URL; import java.security.cert.Certificate; import java.io.*; import java.net.URLEncoder; import java.util.logging.Level; import java.util.logging.Logger; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLPeerUnverifiedException; import org.apache.http.HttpEntity; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class HttpsClient { private static final CustomLogger loggerProperties = new CustomLogger(); private static Logger loggerObj; static { initializeLoggerParams(); } private static void initializeLoggerParams() { boolean isValidLogger = loggerProperties.setLoggerProperties("HTTPSConnection", "./Logs/HTTPSConnection.%u.%g.txt"); if (isValidLogger) { loggerObj = loggerProperties.getLogger(); loggerObj.setUseParentHandlers(false); } } public String OpenHTTPSConnection(String URLToConnect) { URL url; HttpsURLConnection con = null; try { loggerObj.log(Level.SEVERE, "Going to connect to the URL" + URLToConnect); url = new URL(URLToConnect); con = (HttpsURLConnection) url.openConnection(); } catch (MalformedURLException ex) { loggerObj.log(Level.SEVERE, "Malformed URL Exception while trying to establish connection with MEDC portal" + ex.toString()); System.out.println("Malformed URL Exception while trying to establish connection with MEDC portal" + ex.toString()); return null; } catch (IOException ex) { loggerObj.log(Level.SEVERE, "Exception while trying to establish connection with MEDC portal" + ex.toString()); System.out.println("Exception while trying to establish connection with MEDC portal" + ex.toString()); return null; } String result = ConnectionHandler(con); //loggerObj.log(Level.INFO, "The Result obtained from connecting to the URL "+ URLToConnect +"is: " + result); return result; } private String ConnectionHandler(HttpsURLConnection con) { BufferedReader br = null; if (con != null) { try { br = new BufferedReader(new InputStreamReader(con.getInputStream())); String input; String result = ""; while ((input = br.readLine()) != null) { result += input; } br.close(); // loggerObj.log(Level.INFO, "Result recieved from connection is "+ result); return result; } catch (IOException e) { if (br != null) { try { br.close(); } catch (IOException ex) { loggerObj.log(Level.SEVERE, "Exception while closing Connection " + e); } } loggerObj.log(Level.SEVERE, "Exception while trying to establish connection with MEDC portal" + e.toString()); System.out .println("Exception while trying to establish connection with MEDC portal" + e.toString()); return null; } } return null; } /** * * @param urlParams * @param postParams * */ public boolean httpsPost(String url, MultipartEntityBuilder builder, UrlEncodedFormEntity formParams) { loggerObj.log(Level.INFO, "Inside httpsPost method"); CloseableHttpClient httpclient = HttpClients.createDefault(); try { // HttpPost httppost = new HttpPost("https://reportsapi.zoho.com/api/harshavardhan.r@zohocorp.com/Test/Name_password?ZOHO_ACTION=IMPORT&ZOHO_OUTPUT_FORMAT=json&ZOHO_ERROR_FORMAT=json&authtoken=7ed717b94bc30455aad11ce5d31d34f9&ZOHO_API_VERSION=1.0"); loggerObj.log(Level.INFO, "Going to post to the zoho reports api"); HttpPost httppost = new HttpPost(url); //Need to understand the difference betwween multipartentitybuilder and urlencodedformentity// HttpEntity entity = null; if (builder != null) entity = builder.build(); if (formParams != null) entity = formParams; httppost.setEntity(entity); loggerObj.log(Level.INFO, "executing request"); System.out.println("executing request " + httppost.getRequestLine()); CloseableHttpResponse response = null; try { response = httpclient.execute(httppost); } catch (IOException ex) { loggerObj.log(Level.INFO, "Cannot connect to reports.zoho.com" + ex.toString()); return false; } try { loggerObj.log(Level.INFO, "----------------------------------------"); loggerObj.log(Level.INFO, response.toString()); response.getStatusLine(); HttpEntity resEntity = response.getEntity(); if (resEntity != null) { loggerObj.log(Level.INFO, "Response content length: " + resEntity.getContentLength()); BufferedReader rd = null; try { rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); } catch (IOException ex) { loggerObj.log(Level.INFO, "cannot read the response 1 from reports.zoho.com" + ex.toString()); return false; } catch (UnsupportedOperationException ex) { loggerObj.log(Level.INFO, "cannot read the response 2" + ex.toString()); return false; } String line = ""; try { loggerObj.log(Level.INFO, "reading response line"); while ((line = rd.readLine()) != null) { System.out.println(line); loggerObj.log(Level.INFO, line); } } catch (IOException ex) { loggerObj.log(Level.INFO, "cannot read the response 3" + ex.toString()); return false; } } try { EntityUtils.consume(resEntity); } catch (IOException ex) { loggerObj.log(Level.INFO, "cannot read the response 4" + ex.toString()); return false; } } finally { try { response.close(); } catch (IOException ex) { loggerObj.log(Level.INFO, "cannot close the response" + ex.toString()); return false; } } } finally { try { httpclient.close(); } catch (IOException ex) { loggerObj.log(Level.INFO, "cannot read the https clinet" + ex.toString()); return false; } } return true; } }