using System;
using System.Collections.Specialized;
using System.IO;
using System.Net;
using System.Text;
namespace EmbedIO
{
///
///
/// Interface to create a HTTP Request.
///
public interface IHttpRequest : IHttpMessage
{
///
/// Gets the request headers.
///
NameValueCollection Headers { get; }
///
/// Gets a value indicating whether [keep alive].
///
bool KeepAlive { get; }
///
/// Gets the raw URL.
///
string RawUrl { get; }
///
/// Gets the query string.
///
NameValueCollection QueryString { get; }
///
/// Gets the HTTP method.
///
string HttpMethod { get; }
///
/// Gets a constant representing the HTTP method of the request.
///
HttpVerbs HttpVerb { get; }
///
/// Gets the URL.
///
Uri Url { get; }
///
/// Gets a value indicating whether this instance has entity body.
///
bool HasEntityBody { get; }
///
/// Gets the input stream.
///
Stream InputStream { get; }
///
/// Gets the content encoding.
///
Encoding ContentEncoding { get; }
///
/// Gets the remote end point.
///
IPEndPoint RemoteEndPoint { get; }
///
/// Gets a value indicating whether this instance is local.
///
bool IsLocal { get; }
///
/// Gets a value indicating whether this request has been received over a SSL connection.
///
bool IsSecureConnection { get; }
///
/// Gets the user agent.
///
string UserAgent { get; }
///
/// Gets a value indicating whether this instance is web socket request.
///
bool IsWebSocketRequest { get; }
///
/// Gets the local end point.
///
IPEndPoint LocalEndPoint { get; }
///
/// Gets the type of the content.
///
string? ContentType { get; }
///
/// Gets the content length.
///
long ContentLength64 { get; }
///
/// Gets a value indicating whether this instance is authenticated.
///
bool IsAuthenticated { get; }
///
/// Gets the URL referrer.
///
Uri? UrlReferrer { get; }
}
}