All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.arangodb.http.CURLLogger Maven / Gradle / Ivy

There is a newer version: 7.15.0
Show newest version
/*
 * Copyright (C) 2012,2013 tamtam180
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.arangodb.http;

import java.util.Map.Entry;

import org.apache.http.auth.Credentials;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.arangodb.http.HttpRequestEntity.RequestType;

/**
 * @author tamtam180 - kirscheless at gmail.com
 * @since 1.4.1
 */
public class CURLLogger {

	private static Logger logger = LoggerFactory.getLogger(CURLLogger.class);

	public static void log(String url, HttpRequestEntity requestEntity, String userAgent, Credentials credencials) {

		boolean includeBody = (requestEntity.type == RequestType.POST || requestEntity.type == RequestType.PUT || requestEntity.type == RequestType.PATCH)
				&& (requestEntity.bodyText != null && requestEntity.bodyText.length() != 0);

		StringBuilder buffer = new StringBuilder();

		if (includeBody) {
			buffer.append("\n");
			buffer.append("cat <<-___EOB___ | ");
		}

		buffer.append("curl -X ").append(requestEntity.type);
		buffer.append(" --dump -");

		// header
		if (requestEntity.headers != null && !requestEntity.headers.isEmpty()) {
			for (Entry header : requestEntity.headers.entrySet()) {
				buffer.append(" -H '").append(header.getKey()).append(":").append(header.getValue()).append("'");
			}
		}

		// basic auth
		if (credencials != null) {
			buffer.append(" -u ").append(credencials.getUserPrincipal().getName()).append(":")
					.append(credencials.getPassword());
		}

		// user-agent
		// buffer.append(" -A '").append(userAgent).append("'");

		if (includeBody) {
			buffer.append(" -d @-");
		}

		buffer.append(" '").append(url).append("'");

		if (includeBody) {
			buffer.append("\n");
			buffer.append(requestEntity.bodyText);
			buffer.append("\n");
			buffer.append("___EOB___");
		}

		logger.debug("[CURL]{}", buffer);

	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy