package com.github.kristofa.test.http;
import java.util.Set;
/**
* Contains the HTTP request properties required to identify or compare a HTTP request.
*
* @author kristof
*/
public interface HttpRequest {
/**
* Gets method for request.
*
* @return Method for request.
*/
Method getMethod();
/**
* Get content for request.
*
* @return Content for request.
*/
byte[] getContent();
/**
* Gets path for request without query parameters.
*
* @return Path for request.
*/
String getPath();
/**
* Gets query parameters for request.
*
* @return Query parameters for request.
*/
Set<QueryParameter> getQueryParameters();
/**
* Gets query parameters with given key.
*
* @param key Query parameter key. Should not be <code>null</code> or blank.
* @return Query parameters with given key.
*/
Set<QueryParameter> getQueryParameters(final String key);
/**
* Get http message headers.
*
* @return Http message headers.
*/
Set<HttpMessageHeader> getHttpMessageHeaders();
/**
* Get http message headers with given name/key.
*
* @param name Name/key. Should not be <code>null</code> or blank.
* @return Http message headers with given name/key.
*/
Set<HttpMessageHeader> getHttpMessageHeaders(final String name);
}