Ejemplo n.º 1
0
        public static async Task<Stream> GetFromUrl(Uri url, CancellationToken cancel)
        {
            var requester = Configuration.GetHttpRequester();

            if (requester == null)
                throw new NullReferenceException("No HTTP requester has been set up. Configure one with the AngleSharp.Configuration class (e.g. set UseDefaultHttpRequester = true).");

            var request = new DefaultHttpRequest
            {
                Address = url,
                Method = HttpMethod.GET
            };

            var response = await requester.RequestAsync(request, cancel);
            return response.Content;
        }
Ejemplo n.º 2
0
        public void MethodNotAllowedOnHttpPut()
        {
            if (Helper.IsNetworkAvailable())
            {
                var http = new DefaultHttpRequester();
                var request = new DefaultHttpRequest();
                request.Address = new Uri("http://httpbin.org/get");
                request.Method = HttpMethod.PUT;
                request.Content = Helper.StreamFromString("Should be ignored");

                var response = http.Request(request);
                Assert.IsNotNull(response);
                Assert.AreEqual(405, (int)response.StatusCode);
                Assert.IsTrue(response.Content.CanRead);
                Assert.IsTrue(response.Headers.Count > 0);
            }
        }
Ejemplo n.º 3
0
        public void AsyncHttpGetRequest()
        {
            if (Helper.IsNetworkAvailable())
            {
                var http = new DefaultHttpRequester();
                var request = new DefaultHttpRequest();
                request.Address = new Uri("http://httpbin.org/robots.txt");
                request.Method = HttpMethod.GET;

                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());
            }
        }
Ejemplo n.º 4
0
        public void RequestUserAgentString()
        {
            if (Helper.IsNetworkAvailable())
            {
                var http = new DefaultHttpRequester();
                var request = new DefaultHttpRequest();
                request.Address = new Uri("http://httpbin.org/user-agent");
                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 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);
            }
        }
Ejemplo n.º 5
0
        public void StatusCode500OfHttpGetRequest()
        {
            if (Helper.IsNetworkAvailable())
            {
                var http = new DefaultHttpRequester();
                var request = new DefaultHttpRequest();
                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);
            }
        }
Ejemplo n.º 6
0
        public void SimpleHttpPutRequest()
        {
            if (Helper.IsNetworkAvailable())
            {
                var http = new DefaultHttpRequester();
                var request = new DefaultHttpRequest();
                request.Address = new Uri("http://httpbin.org/put");
                request.Method = HttpMethod.PUT;
                request.Content = Helper.StreamFromString("PUT THIS THING BACK");

                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\": \"PUT THIS THING BACK\""));
            }
        }
Ejemplo n.º 7
0
        public void SimpleHttpDeleteRequest()
        {
            if (Helper.IsNetworkAvailable())
            {
                var http = new DefaultHttpRequester();
                var request = new DefaultHttpRequest();
                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);
            }
        }