public void RequestUserAgentString() { if (Helper.IsNetworkAvailable()) { var info = new CustomInfo { Agent = "MyAgent", Version = "1.0" }; var http = new DefaultRequester(info); var request = new DefaultRequest(); request.Address = new Url("http://httpbin.org/user-agent"); request.Method = HttpMethod.Get; var response = http.RequestAsync(request).Result; Assert.IsNotNull(response); Assert.AreEqual(200, (int)response.StatusCode); Assert.IsTrue(response.Content.CanRead); Assert.IsTrue(response.Headers.Count > 0); var stream = new StreamReader(response.Content); Assert.IsNotNull(stream); var content = stream.ReadToEnd(); Assert.IsTrue(content.Length > 0); Assert.AreEqual("{\n \"user-agent\": \"" + info.Agent + "\"\n}", content); } }
public void AsyncHttpGetRequest() { if (Helper.IsNetworkAvailable()) { var http = new DefaultRequester(); var request = new DefaultRequest(); request.Address = new Url("http://httpbin.org/robots.txt"); request.Method = HttpMethod.Get; using (var response = http.RequestAsync(request)) { Assert.IsNotNull(response); Assert.IsFalse(response.IsCompleted); var result = response.Result; Assert.IsTrue(response.IsCompleted); Assert.IsTrue(result.Content.CanRead); Assert.IsTrue(result.Headers.Count > 0); var content = new StreamReader(result.Content); Assert.AreEqual("User-agent: *\nDisallow: /deny\n", content.ReadToEnd()); } } }
public void SimpleHttpPutRequest() { if (Helper.IsNetworkAvailable()) { var http = new DefaultRequester(); var request = new DefaultRequest(); request.Address = new Url("http://httpbin.org/put"); request.Method = HttpMethod.Put; request.Content = Helper.StreamFromString("PUT THIS THING BACK"); using (var response = http.RequestAsync(request).Result) { Assert.IsNotNull(response); Assert.AreEqual(200, (int)response.StatusCode); Assert.IsTrue(response.Content.CanRead); Assert.IsTrue(response.Headers.Count > 0); var stream = new StreamReader(response.Content); Assert.IsNotNull(stream); var content = stream.ReadToEnd(); Assert.IsTrue(content.Length > 0); Assert.IsTrue(content.Contains("\"data\": \"PUT THIS THING BACK\"")); } } }
public void StatusCode404OfHttpGetRequest() { if (Helper.IsNetworkAvailable()) { var http = new DefaultRequester(); var request = new DefaultRequest(); request.Address = new Url("http://httpbin.org/status/404"); request.Method = HttpMethod.Get; var response = http.RequestAsync(request).Result; Assert.IsNotNull(response); Assert.AreEqual(404, (int)response.StatusCode); Assert.IsTrue(response.Content.CanRead); Assert.IsTrue(response.Headers.Count > 0); } }
public void StatusCode500OfHttpGetRequest() { if (Helper.IsNetworkAvailable()) { var http = new DefaultRequester(new DefaultInfo()); var request = new DefaultRequest(); request.Address = new Uri("http://httpbin.org/status/500"); request.Method = HttpMethod.GET; var response = http.Request(request); Assert.IsNotNull(response); Assert.AreEqual(500, (int)response.StatusCode); Assert.IsTrue(response.Content.CanRead); Assert.IsTrue(response.Headers.Count > 0); } }
public void MethodNotAllowedOnHttpPut() { if (Helper.IsNetworkAvailable()) { var http = new DefaultRequester(); var request = new DefaultRequest(); request.Address = new Url("http://httpbin.org/get"); request.Method = HttpMethod.Put; request.Content = Helper.StreamFromString("Should be ignored"); var response = http.RequestAsync(request).Result; Assert.IsNotNull(response); Assert.AreEqual(405, (int)response.StatusCode); Assert.IsTrue(response.Content.CanRead); Assert.IsTrue(response.Headers.Count > 0); } }
public void SimpleHttpDeleteRequest() { if (Helper.IsNetworkAvailable()) { var http = new DefaultRequester(new DefaultInfo()); var request = new DefaultRequest(); request.Address = new Uri("http://httpbin.org/delete"); request.Method = HttpMethod.DELETE; request.Content = Helper.StreamFromString("Should be ignored"); var response = http.Request(request); Assert.IsNotNull(response); Assert.AreEqual(200, (int)response.StatusCode); Assert.IsTrue(response.Content.CanRead); Assert.IsTrue(response.Headers.Count > 0); } }
public void SimpleHttpGetRequest() { if (Helper.IsNetworkAvailable()) { var http = new DefaultRequester(new DefaultInfo()); var request = new DefaultRequest(); request.Address = new Uri("http://httpbin.org/robots.txt"); request.Method = HttpMethod.GET; var response = http.Request(request); Assert.IsNotNull(response); Assert.AreEqual(200, (int)response.StatusCode); Assert.IsTrue(response.Content.CanRead); Assert.IsTrue(response.Headers.Count > 0); var content = new StreamReader(response.Content); Assert.AreEqual("User-agent: *\nDisallow: /deny\n", content.ReadToEnd()); } }
/// <summary> /// 获取请求对象 /// </summary> /// <param name="context"></param> /// <returns></returns> private Requester GetRequester(AuthorizationFilterContext context) { //是否为ajax请求 bool isAjax = IsAjaxRequest(context.HttpContext); //请求者 Requester requester = null; if (isAjax) { requester = new AjaxRequester(context); } else { requester = new DefaultRequester(context); } return(requester); }
public void SimpleHttpPostRequest() { if (Helper.IsNetworkAvailable()) { var http = new DefaultRequester(new DefaultInfo()); var request = new DefaultRequest(); request.Address = new Uri("http://httpbin.org/post"); request.Method = HttpMethod.POST; request.Content = Helper.StreamFromString("Hello world"); var response = http.Request(request); Assert.IsNotNull(response); Assert.AreEqual(200, (int)response.StatusCode); Assert.IsTrue(response.Content.CanRead); Assert.IsTrue(response.Headers.Count > 0); var stream = new StreamReader(response.Content); Assert.IsNotNull(stream); var content = stream.ReadToEnd(); Assert.IsTrue(content.Length > 0); Assert.IsTrue(content.Contains("\"data\": \"Hello world\"")); } }
/// <summary> /// 默认请求输出 /// </summary> /// <param name="requester"></param> public abstract void DefaultResponse(DefaultRequester requester);