Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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());
                }
            }
        }
Beispiel #3
0
        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\""));
                }
            }
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
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);
            }
        }
Beispiel #6
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);
            }
        }
Beispiel #7
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);
            }
        }
Beispiel #8
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());
            }
        }
Beispiel #9
0
        /// <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);
        }
Beispiel #10
0
        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\""));
            }
        }
Beispiel #11
0
 /// <summary>
 /// 默认请求输出
 /// </summary>
 /// <param name="requester"></param>
 public abstract void DefaultResponse(DefaultRequester requester);