private async Task<object> ParseToObject(Type type, IEnumerable<KeyValuePair<string, string>> pairs) { var content = new FormUrlEncodedContent(pairs); var formatter = new FormUrlEncodedMediaTypeFormatter(); var stream = await content.ReadAsStreamAsync(); var jtoken = await formatter.ReadFromStreamAsync(typeof(JToken), stream, content, this._logger) as JToken; return jtoken.ToObject(type); }
public void ReadDeeplyNestedObjectThrows() { FormUrlEncodedMediaTypeFormatter formatter = new FormUrlEncodedMediaTypeFormatter() { MaxDepth = 100 }; StringContent content = new StringContent(GetDeeplyNestedObject(125)); content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded"); Assert.ThrowsArgument( () => formatter.ReadFromStreamAsync(typeof(JToken), content.ReadAsStreamAsync().Result, content.Headers, null).Result, null); }
public void ReadDeeplyNestedObjectWithBigDepthQuotaWorks() { FormUrlEncodedMediaTypeFormatter formatter = new FormUrlEncodedMediaTypeFormatter() { MaxDepth = 150 }; StringContent content = new StringContent(GetDeeplyNestedObject(125)); content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded"); JToken result = (JToken)formatter.ReadFromStreamAsync(typeof(JToken), content.ReadAsStreamAsync().Result, content.Headers, null).Result; Assert.NotNull(result); }
public async Task ReadDeeplyNestedObjectThrows() { FormUrlEncodedMediaTypeFormatter formatter = new FormUrlEncodedMediaTypeFormatter() { MaxDepth = 100 }; StringContent content = new StringContent(GetDeeplyNestedObject(125)); content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded"); var contentStream = await content.ReadAsStreamAsync(); await Assert.ThrowsAsync <ArgumentException>( () => formatter.ReadFromStreamAsync(typeof(JToken), contentStream, content, null)); }
public void ReadDeeplyNestedObjectWithBigDepthQuotaWorks() { FormUrlEncodedMediaTypeFormatter formatter = new FormUrlEncodedMediaTypeFormatter() { MaxDepth = 150 }; StringContent content = new StringContent(GetDeeplyNestedObject(125)); content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded"); JToken result = (JToken)formatter.ReadFromStreamAsync(typeof(JToken), content.ReadAsStreamAsync().Result, content, null).Result; Assert.NotNull(result); }