blob: 766c84b31c19d7a89896a895ec7a478c6ff30fb0 [file] [log] [blame]
/*
* 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; }
}