Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.paypal.base;
  
  import java.util.Iterator;
 import java.util.Map;
 
 
Base HttpConnection class
 
 public abstract class HttpConnection {
 
 	private static final Logger log = LoggerFactory.getLogger(HttpConnection.class);

Subclasses must set the http configuration in the createAndconfigureHttpConnection() method.
 
 	protected HttpConfiguration config;

Subclasses must create and set the connection in the createAndconfigureHttpConnection() method.
 
 
 	public HttpConnection() {
 
 	}

 
 	public String execute(String urlString payload,
 		String successResponse = .errorResponse = .;
 		int responsecode = -1;
 		BufferedReader reader = null;
 		OutputStreamWriter writer = null;
 		.setRequestProperty("Content-Length"""
 				+ payload.trim().length());
 		if (headers != null) {
 			.debug("curl command: ");
 			.debug("curl -v '" + .getURL().toString() + "' \\");
 			setHttpHeaders(headers);
 			Iterator<StringkeyIter = headers.keySet().iterator();
 			while (keyIter.hasNext()) {
 				String key = keyIter.next();
 				String value = headers.get(key);
 				.debug("-H \"" + key + ": " + value + "\" \\");
 			}
 			.debug("-d '" + payload + "'");
 		}
 		try {
 			// This exception is used to make final log more explicit
 			Exception lastException = null;
 			int retry = 0;
 			retryLoop:
 			do {
 				try {
 						writer = new OutputStreamWriter(
 						writer.write(payload);
 						writer.flush();
 					}
 					responsecode = .getResponseCode();
 					reader = new BufferedReader(new InputStreamReader(
 					if (responsecode >= 200 && responsecode < 300) {
						successResponse = read(reader);
						.debug("Response : " + successResponse);
						break retryLoop;
else {
						successResponse = read(reader);
								"Response Code : " + responsecode
" with response : " + successResponse);
					}
catch (IOException e) {
					lastException = e;
					try {
						responsecode = .getResponseCode();
						if (.getErrorStream() != null) {
							reader = new BufferedReader(new InputStreamReader(
							errorResponse = read(reader);
							.error("Error code : " + responsecode
" with response : " + errorResponse);
						}
						if ((errorResponse == null)
								|| (errorResponse.length() == 0)) {
							errorResponse = e.getMessage();
						}
						if (responsecode <= 500) {
							throw new HttpErrorException(responsecode,
									errorResponse,
									"Error code : "
responsecode + " with response : "
errorResponsee);
						}
catch (HttpErrorException ex) {
						throw ex;
catch (Exception ex) {
						lastException = ex;
						.error("Caught exception while handling error response"ex);
					}
				}
				retry++;
				if (retry > 0) {
					.error(" Retry  No : " + retry + "...");
					Thread.sleep(this..getRetryDelay());
				}
while (retry < this..getMaxRetry());
			if (successResponse.trim().length() <= 0 && !(responsecode >= 200 && responsecode < 300)) {
				throw new HttpErrorException("retry fails..  check log for more information"lastException);
			}
finally {
			try {
				if (reader != null) {
					reader.close();
				}
				if (writer != null) {
					writer.close();
				}
finally {
				reader = null;
				writer = null;
			}
		}
		return successResponse;
	}

Set ssl parameters for client authentication

Parameters:
certPath
certKey
Throws:
com.paypal.base.exception.SSLConfigurationException
	public abstract void setupClientSSL(String certPathString certKey)
create and configure HttpsURLConnection object

Parameters:
clientConfiguration
Throws:
MalformedURLException
java.io.IOException
	public abstract void createAndconfigureHttpConnection(
			HttpConfiguration clientConfigurationthrows IOException;
	protected String read(BufferedReader readerthrows IOException {
		StringBuilder response = new StringBuilder();
		while ((inputLine = reader.readLine()) != null) {
			response.append(inputLine);
		}
		return response.toString();
	}

Set headers for HttpsURLConnection object

Parameters:
headers
	protected void setHttpHeaders(Map<StringStringheaders) {
		Iterator<Map.Entry<StringString>> itr = headers.entrySet().iterator();
		while (itr.hasNext()) {
			Map.Entry<StringStringpairs = itr.next();
			String key = pairs.getKey();
			String value = pairs.getValue();
			this..setRequestProperty(keyvalue);
		}
	}
New to GrepCode? Check out our FAQ X