using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Diagnostics.Contracts;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace Rocky.Net
{
public sealed class HttpRequestWrapper : System.Web.HttpRequestBase
{
internal static readonly string[] SystemHeaders = new string[]
{
"Accept", "Connection", "Content-Length", "Content-Type",
"Date", "Host", "Expect", "If-Modified-Since", "Range", "Transfer-Encoding","Referer", "User-Agent",
"Proxy-Connection"
};
private HttpListenerRequest _request;
public override string[] AcceptTypes
{
get { return _request.AcceptTypes; }
}
public override Encoding ContentEncoding
{
get { return _request.ContentEncoding; }
set
{
throw new NotSupportedException();
}
}
public override int ContentLength
{
get { return (int)_request.ContentLength64; }
}
public override string ContentType
{
get { return _request.ContentType; }
set
{
throw new NotSupportedException();
}
}
public override NameValueCollection Headers
{
get { return _request.Headers; }
}
public override string HttpMethod
{
get { return _request.HttpMethod; }
}
public override Stream InputStream
{
get { return _request.InputStream; }
}
public override bool IsAuthenticated
{
get { return _request.IsAuthenticated; }
}
public override bool IsLocal
{
get { return _request.IsLocal; }
}
public override bool IsSecureConnection
{
get { return _request.IsSecureConnection; }
}
public override NameValueCollection QueryString
{
get { return _request.QueryString; }
}
public override string RawUrl
{
get { return _request.RawUrl; }
}
public override Uri Url
{
get { return _request.Url; }
}
public override Uri UrlReferrer
{
get { return _request.UrlReferrer; }
}
public override string UserAgent
{
get { return _request.UserAgent; }
}
public override string UserHostAddress
{
get { return _request.UserHostAddress; }
}
public override string UserHostName
{
get { return _request.UserHostName; }
}
public override string[] UserLanguages
{
get { return _request.UserLanguages; }
}
public HttpRequestWrapper(HttpListenerRequest request)
{
Contract.Requires(request != null);
_request = request;
}
}
}