Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2013-2014 by Cisco Systems, Inc. All rights reserved.
  
  package com.cisco.oss.foundation.directory.impl;
  
  import java.util.Map;
  
 
It is the HTTP invoker to the ServiceDirectory ServerNode. It wraps the complicity of HttpClient and exposes a easy method to invoke RESTful services.

Author(s):
zuxiang
 
 public class DirectoryInvoker {
 	private static final Logger LOGGER = LoggerFactory
 
 	private final JsonSerializer serializer ;
 	private HttpUtils httpUtils = null;

Constructor.

Parameters:
directoryAddresses The remote ServiceDirectory node address array, in the format of http://<host>:<port>
 
 	public DirectoryInvoker(String directoryAddressesJsonSerializer serializer) {
 		this. = directoryAddresses;
 		this. = serializer;
 		this. = HttpUtils.getInstance();
 	}

Invoke the HTTP RESTful Service.

Parameters:
uri The URI of the RESTful service.
payload The HTTP body String.
method THe HTTP method.
Returns:
the HttpResponse.
 
 	public HttpResponse invoke(String uriString payloadHttpMethod method) {
 		HttpResponse result = null;
 		String url =  + uri;
 		try {
 			if (method == null || method == .) {
 				result = getHttpUtils().getJson(url);
 			} else if (method == .) {
 				result = getHttpUtils().postJson(urlpayload);
 			} else if (method == .) {
 				result = getHttpUtils().putJson(urlpayload);
 			} else if (method == .) {
 				result = getHttpUtils().deleteJson(url);
 			}
 		} catch (IOException e) {
 			String errMsg = "Send HTTP Request to remote Directory Server failed";
 			.error(errMsg);
 			.debug(errMsge);
 			throw new DirectoryServerClientException(sdee);
 		}
 		
 		if (result.getHttpCode() < 200 || result.getHttpCode() >= 300) {
 			String errorBody = result.getRetBody();
 			
 			if(errorBody == null || errorBody.isEmpty()){
 				.error("Invoke remote directory server failed, status=" + result.getHttpCode() 
 						+ ", Error Message body is empty.");
 						."Error Message body is empty.");
 			}
 			ServiceDirectoryError sde = null;
 			try {
 						.deserialize(errorBody.getBytes(),
 			} catch (IOException  e) {
 				String errMsg = "Deserialize error body message failed";
 				.error(errMsg);
 				.debug(errMsg + ", messageBody=" + errorBodye);
 				throw new DirectoryServerClientException(sde1e);
			}
			if (sde != null) {
			}
		}
		return result;
	}

Invoke the HTTP RESTful Service.

Parameters:
uri The URI of the RESTful service.
payload The HTTP body string.
method The HTTP method.
headers The HTTP headers.
Returns:
the HttpResponse.
	public HttpResponse invoke(String uriString payloadHttpMethod methodMap<StringStringheaders) {
		HttpResponse result = null;
		String url =  + uri;
		try {
			if (method == .) {
				result = getHttpUtils().put(urlpayloadheaders);
catch (IOException e) {
			String errMsg = "Send HTTP Request to remote Directory Server failed";
			.error(errMsg);
			.debug(errMsge);
			throw new DirectoryServerClientException(sdee);
		}
		if (result.getHttpCode() < 200 || result.getHttpCode() >= 300) {
			String errorBody = result.getRetBody();
			if(errorBody == null || errorBody.isEmpty()){
				.error("Invoke remote directory server failed, status=" + result.getHttpCode() 
", Error Message body is empty.");
						."Error Message body is empty.");
			}
			ServiceDirectoryError sde = null;
			try {
						.deserialize(errorBody.getBytes(),
catch (IOException  e) {
				String errMsg = "Deserialize error body message failed";
				.error(errMsg);
				.debug(errMsg + ", messageBody=" + errorBodye);
				throw new DirectoryServerClientException(sde1e);
			}
			if (sde != null) {
			}
		}
		return result;
	}
		return this.;
	}

Keep it default for unit test.

Parameters:
httpUtils the customer HttpUtils.
	void setHttpUtils(HttpUtils httpUtils){
		this. = httpUtils;
	}
New to GrepCode? Check out our FAQ X