public async Task TestGetResponseTextAsync_NormalPost_Passed() { INetUtility net = new NetUtility(); var request = net.CreateHttp("https://httpbin.org/post"); request.Method = HttpMethod.Post.Method; request.ContentType = "application/x-www-form-urlencoded"; string name = "陳大文"; using (var stream = await request.GetRequestStreamAsync()) using (var writer = new StreamWriter(stream)) { string postData = "name=" + WebUtility.UrlEncode(name); writer.Write(postData); } using (var response = await request.GetResponseAsync()) { Assert.Equal(HttpStatusCode.OK, response.StatusCode); string content = await net.GetResponseTextAsync(response); var obj = new { form = new { name = "" } }; obj = JsonConvert.DeserializeAnonymousType(content, obj); Assert.Equal(obj.form.name, name); } }
public async Task TestGetResponseAsync_ErrorStatusCode_NoException() { INetUtility net = new NetUtility(); var request = net.CreateHttp("https://httpbin.org/status/400"); request.ContentType = "text/html"; using (var response = await request.GetResponseAsync()) { Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); } }
public async Task TestGetResponseAsync_InvalidUrl_NoException() { INetUtility net = new NetUtility(); var request = net.CreateHttp("http://sf93h4f9h3sf3f39fh49.com/"); request.ContentType = "text/html"; using (var response = await request.GetResponseAsync()) { Assert.Null(response); } }
public void TestCreateHttp() { INetUtility net = new NetUtility(); var request = net.CreateHttp("http://localhost:12345/"); Assert.Equal("http://localhost:12345/", request.RequestUri.AbsoluteUri); request.Accept = "*/*"; Assert.Equal("*/*", request.Accept); request.ContentType = "text/html"; Assert.Equal("text/html", request.ContentType); request.Headers[HttpRequestHeader.Authorization] = "Bearer 12345"; Assert.Equal(3, request.Headers.Count); // because of Accept and ContentType Assert.Equal("Bearer 12345", request.Headers[HttpRequestHeader.Authorization]); request.Method = HttpMethod.Post.Method; Assert.Equal(HttpMethod.Post.Method, request.Method); }
public async Task TestGetResponseTextAsync_GzippedData_Passed() { INetUtility net = new NetUtility(); var request = net.CreateHttp("https://httpbin.org/gzip"); request.ContentType = "application/json"; using (var response = await request.GetResponseAsync()) { Assert.Equal(HttpStatusCode.OK, response.StatusCode); string content = await net.GetResponseTextAsync(response); var obj = new { gzipped = false }; obj = JsonConvert.DeserializeAnonymousType(content, obj); Assert.True(obj.gzipped); } }