/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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 org.apache.ambari.funtest.server; import java.util.Collections; import java.util.Map; import java.util.HashMap; /** * Makes a request to a URL. */ public class WebRequest { private String httpMethod; private String url; private String queryString; private String content; private String contentType; private String contentEncoding; private String userName; private String password; private Map<String, String> headers = new HashMap<>(); public WebRequest() {} public WebResponse getResponse() throws Exception { return null; } /** * Gets the HTTP Method (POST, GET, PUT, DELETE) * * @return - HTTP Method */ public String getHttpMethod() { return this.httpMethod; } /** * Sets the HTTP Method to use. * * @param httpMethod */ public void setHttpMethod(String httpMethod) { this.httpMethod = httpMethod; } /** * Gets the full URL to the request. * * @return */ public String getUrl() { return this.url; } /** * Sets the full URL to the request. * * @param url */ public void setUrl(String url) { this.url = url; } /** * Gets the query string (name1=value1?name2=value2) * * @return */ public String getQueryString() { return this.queryString; } /** * Sets the query string * * @param queryString */ public void setQueryString(String queryString) { this.queryString = queryString; } /** * Gets the request data. * * @return */ public String getContent() { return this.content; } /** * Sets the request data. * * @param content */ public void setContent(String content) { this.content = content; } /** * Gets the content type (application/json, application/text) * * @return */ public String getContentType() { return this.contentType; } /** * Sets the content type. * * @param contentType */ public void setContentType(String contentType) { this.contentType = contentType; } /** * Gets the content encoding (UTF-8) * * @return */ public String getContentEncoding() { return this.contentEncoding; } /** * Sets the content encoding * * @param contentEncoding */ public void setContentEncoding(String contentEncoding) { this.contentEncoding = contentEncoding; } /** * Gets the request headers. * * @return - A read-only collection of headers. */ public Map<String, String> getHeaders() { return Collections.unmodifiableMap(this.headers); } /** * Clear the request headers. */ public void clearHeaders() { this.headers.clear(); } /** * Add a collection of request headers. * * @param headers */ public void addHeaders(Map<String, String> headers) { for (Map.Entry<String, String> entry : headers.entrySet()) { addHeader(entry.getKey(), entry.getValue()); } } /** * Add a name-value pair to the request headers. * * @param name * @param value */ public void addHeader(String name, String value) { this.headers.put(name, value); } /** * Sets the user id for the REST API URL * * @param userName */ public void setUserName(String userName) { this.userName = userName; } /** * Gets the user name * * @return - User name */ public String getUserName() { return this.userName; } /** * Sets the password * * @param password - Password */ public void setPassword(String password) { this.password = password; } /** * Gets the password * * @return - Password */ public String getPassword() { return this.password; } }