private void ReadCookies(IRequestValues values) { var cookies = new HttpCookieCollection(); foreach (var cookievalues in Request.Headers.GetCookies()) { foreach (var cookie in cookievalues.Cookies) { var c = new HttpCookie(cookie.Name, cookie.Value) { Domain = cookievalues.Domain, HttpOnly = cookievalues.HttpOnly, Path = cookievalues.Path, Secure = cookievalues.Secure, }; if (cookievalues.Expires.HasValue) { c.Expires = cookievalues.Expires.Value.DateTime; } cookies.Add(c); } } values.Cookies = cookies; }
private void ReadOther(IRequestValues values) { values.Url = Url; values.Path = Url.LocalPath; values.PathInfo = ""; values.RawUrl = Url.PathAndQuery; }
private void ReadRouteData(IRequestValues values) { var nv = new NameValueCollection(); foreach (var item in ControllerContext.RouteData.Values) { nv.Add(item.Key, item.Value + ""); } values.RouteDatas = nv; }
private async Task ReadBody(IRequestValues values) { if (Request.Content.IsMimeMultipartContent()) { var bodyparts = await Request.Content.ReadAsMultipartAsync(); var form = new NameValueCollection(StringComparer.OrdinalIgnoreCase); var files = new PostedFileCollection(); foreach (var content in bodyparts.Contents) { var headers = content.Headers; var distion = headers.ContentDisposition; if (headers.ContentType == null) { form.Add(distion.Name.Trim(FileWarpper), await content.ReadAsStringAsync()); } else { files.Add(distion.Name.Trim(FileWarpper), new PostedFile() { Name = distion.FileName.Trim(FileWarpper), Type = headers.ContentType.MediaType.Trim(FileWarpper), Length = (int)headers.ContentLength.GetValueOrDefault(-1), Stream = await content.ReadAsStreamAsync() }); } } values.Form = form; values.Files = files; } else { values.Form = await Request.Content.ReadAsFormDataAsync(); } values.FormBody = await Request.Content.ReadAsByteArrayAsync(); }
private void ReadQueryStrings(IRequestValues values) { values.QueryString = HttpUtility.ParseQueryString(Url.Query); }
private void ReadHeaders(IRequestValues values) { values.Headers = new RequestHeaders(Request.Headers); }