public void ReadFromStreamTwice() { var stream = new MemoryStream(); var writer = new StreamWriter(stream); writer.Write(OriginalFormsString); writer.Flush(); stream.Seek(0, SeekOrigin.Begin); IOwinRequest request = new OwinRequest(); request.Body = stream; IFormCollection form = request.ReadFormAsync().Result; Assert.Equal("v1", form.Get("q1")); Assert.Equal("v2,b", form.Get("Q2")); Assert.Equal("v3,v4", form.Get("q3")); Assert.Null(form.Get("q4")); Assert.Equal("v5,v5", form.Get("Q5")); form = request.ReadFormAsync().Result; Assert.Equal("v1", form.Get("q1")); Assert.Equal("v2,b", form.Get("Q2")); Assert.Equal("v3,v4", form.Get("q3")); Assert.Null(form.Get("q4")); Assert.Equal("v5,v5", form.Get("Q5")); }
private static HttpRequestParams GetRequestParams(OwinRequest request) { var task = request.ReadFormAsync(); task.Wait(); return(new HttpRequestParams(request.Query, task.Result)); }
public void ParseForm() { IDictionary<string, object> environment = new Dictionary<string, object>(); environment["owin.RequestBody"] = new MemoryStream(Encoding.ASCII.GetBytes(OriginalFormsString)); IOwinRequest request = new OwinRequest(environment); IFormCollection form = request.ReadFormAsync().Result; Assert.Equal("v1", form.Get("q1")); Assert.Equal("v2,b", form.Get("Q2")); Assert.Equal("v3,v4", form.Get("q3")); Assert.Null(form.Get("q4")); Assert.Equal("v5,v5", form.Get("Q5")); }
public void ParseForm() { IDictionary <string, object> environment = new Dictionary <string, object>(); environment["owin.RequestBody"] = new MemoryStream(Encoding.ASCII.GetBytes(OriginalFormsString)); IOwinRequest request = new OwinRequest(environment); IFormCollection form = request.ReadFormAsync().Result; Assert.Equal("v1", form.Get("q1")); Assert.Equal("v2,b", form.Get("Q2")); Assert.Equal("v3,v4", form.Get("q3")); Assert.Null(form.Get("q4")); Assert.Equal("v5,v5", form.Get("Q5")); }
public void ReadFromStream() { var stream = new MemoryStream(); var writer = new StreamWriter(stream); writer.Write(OriginalFormsString); writer.Flush(); stream.Seek(0, SeekOrigin.Begin); IOwinRequest request = new OwinRequest(); request.Body = stream; IFormCollection form = request.ReadFormAsync().Result; Assert.Equal("v1", form.Get("q1")); Assert.Equal("v2,b", form.Get("Q2")); Assert.Equal("v3,v4", form.Get("q3")); Assert.Null(form.Get("q4")); Assert.Equal("v5,v5", form.Get("Q5")); }
public void Configuration(IAppBuilder app) { app.UseDispatcher(dispatcher => { // list all the things: dispatcher.Get("/things", (environment, next) => { var response = new OwinResponse(environment) { StatusCode = 200, ContentType = "text/plain" }; response.Write("# All the things:"); response.Write(Environment.NewLine); response.Write(Environment.NewLine); foreach (var thing in _things.Values) { response.Write(String.Concat("- Thing #", thing.Id, ": ", thing.Name)); response.Write(Environment.NewLine); } return(Task.FromResult((object)null)); }); // create a new thing: dispatcher.Post("/things", async(environment, next) => { var request = new OwinRequest(environment); var form = await request.ReadFormAsync(); var response = new OwinResponse(environment); var thingName = form["name"]; if (thingName == null) { response.StatusCode = 400; await response.WriteAsync("The thing to POST is missing a name."); return; } _things.Add(++_lastThingId, new Thing { Id = _lastThingId, Name = thingName }); var uri = String.Concat("/things/", _lastThingId); response.StatusCode = 201; response.Headers["Location"] = uri; response.ContentType = "text/plain"; await response.WriteAsync(uri); }); // list all the things: dispatcher.Get("/things/{id}", (environment, @params, next) => { var response = new OwinResponse(environment); int id; if (!int.TryParse(@params.id, out id)) { response.StatusCode = 404; return(response.WriteAsync("Not found.")); } if (!_things.ContainsKey(id)) { response.StatusCode = 404; return(response.WriteAsync("Not found.")); } var thing = _things[id]; response.StatusCode = 200; response.ContentType = "text/plain"; return(response.WriteAsync(String.Concat("Thing #", thing.Id, " is ", thing.Name, "."))); }); }); }
public async Task <INameValueCollection> ReadForm() { IFormCollection form = await _request.ReadFormAsync().PreserveCulture(); return(new ReadableStringCollectionWrapper(form)); }
private static async Task ExecuteAsync( IDictionary <string, object> environment, IDictionary <string, string> keys, OwinRequest request, AsyncHttpRequestHandler handler) { var response = new OwinResponse(environment); var executor = (Func <Task <object> >)(async() => { var form = from w in request.HasForm() ? (IEnumerable <KeyValuePair <string, string[]> >)(await request.ReadFormAsync().ConfigureAwait(false)) : EmptyForm select w != null ? w[0] : null; return(await handler.Executor( environment, keys, form.ToDictionary())); }); var result = await executor().ConfigureAwait(false); if (result != null) { await response.WriteAsync(JsonConvert.SerializeObject(result)).ConfigureAwait(false); } response.StatusCode = handler.StatusCodeGenerator != null ? handler.StatusCodeGenerator(result) : (int)HttpStatusCode.OK; }