Ejemplo n.º 1
0
        public static async Task <HttpRequest> Create(IInputStreamAsync stream)
        {
            var req = new HttpRequest();

            req.ReqLine = new HttpRequestLine(await stream.ReadLineAsync());

            req.Headers = new Dictionary <string, string>();
            var header = await stream.ReadLineAsync();

            while (!string.IsNullOrEmpty(header))
            {
                var parts = header.Split(new string[] { ": " }, StringSplitOptions.None);
                if (parts.Length == 2)
                {
                    req.Headers.Add(parts[0], parts[1]);
                }
                header = await stream.ReadLineAsync();
            }

            req.Body =
                req.ReqLine.Method == HttpMethod.GET || req.ReqLine.Method == HttpMethod.OPTIONS
                ? HttpRequestBody.Empty()
                : req.ContainsHeader(HttpHeader.ContentType) && req.GetHeader(HttpHeader.ContentType).Contains("multipart/form-data")
                    ? await HttpRequestBody.Multipart(stream)
                    : await HttpRequestBody.Text(stream);

            return(req);
        }
Ejemplo n.º 2
0
        public static async Task <HttpRequestBody> Text(IInputStreamAsync stream)
        {
            var body = await stream.ReadToEndAsync();

            return(!string.IsNullOrEmpty(body)
                ? new HttpRequestBody(BodyType.Text, body)
                : new HttpRequestBody(BodyType.Empty, null));
        }
Ejemplo n.º 3
0
 public static async Task <HttpRequestBody> Multipart(IInputStreamAsync stream)
 {
     return(new HttpRequestBody(BodyType.Multipart, await MultipartFormDataParser.CreateAsync(stream)));
 }