public void WC_SendRequest_BadRequests(string request) { string result = webClient.SendRequest(request); response.Payload = new Payload(); response.Payload.Resource = null; response.Payload.ErrorMessage = "Request is not valid."; response.Status = Status.BAD_FORMAT.ToString(); response.StatusCode = StatusCode.BAD_FORMAT_CODE; string expected = JsonConvert.SerializeObject(response); Assert.AreEqual(expected, result); }
public void BinaryWebResponseTest() { var webClient = new WebClient(); var uri = new Uri( "https://download-cdn.getsync.com/stable/windows64/BitTorrent-Sync_x64.exe" ); using ( var response = webClient.SendRequest( uri ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.Binary, response.ResponseType ); Assert.Equal( uri, response.ResponseUrl ); var binaryResponse = response as BinaryWebResponse; Assert.NotNull( binaryResponse ); byte[] data; var s = binaryResponse.GetResponseStream(); Assert.NotNull( s ); using ( var ms = new MemoryStream() ) { s.CopyTo( ms ); data = ms.ToArray(); } Assert.NotNull( data ); } }
public void BinaryWebResponseDataPropertyBackwardsCompatibilityTest() { var webClient = new WebClient(); var uri = new Uri("https://download-cdn.getsync.com/stable/windows64/Resilio-Sync_x64.exe"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Binary, response.ResponseType); Assert.Equal(uri, response.ResponseUrl); var binaryResponse = response as BinaryWebResponse; Assert.NotNull(binaryResponse); byte[] data; using (var s = binaryResponse.GetResponseStream()) { using (var ms = new MemoryStream()) { s.CopyTo(ms); data = ms.ToArray(); } } Assert.NotNull(data); } }
/// <summary> /// Submits the form, specifying the request data, redirection action, and a range of valid response types. /// </summary> /// <param name="requestData">Contains the request data in <b>application/x-www-form-urlencoded</b> format.</param> /// <param name="autoRedirect"><b>true</b> if the request should be automatically redirected; <b>false</b> otherwise.</param> /// <param name="validTypes">Contains a list of acceptable response types.</param> /// <returns>The response from the server.</returns> /// <remarks> /// This overload allows all form request options to be specified. /// </remarks> protected WebResponse SubmitRequest(string requestData, bool autoRedirect, WebResponseType[] validTypes) { WebRequest request; if (Attributes.ContainsKey("method") && Attributes["method"].ToUpperInvariant() == "POST") { request = new PostWebRequest(ActionUrl, requestData, autoRedirect); } else { var builder = new UriBuilder(ActionUrl) { Query = requestData, Port = -1 }; request = new GetWebRequest(builder.Uri, autoRedirect); } request.IsXmlHttpRequest = SubmitAsXmlHttpRequest; if (FormUrl != null) { request.Headers.Add(CommonHeaders.Referer, FormUrl.ToString()); } return(WebResponseValidator.ValidateResponse(WebClient.SendRequest(request), validTypes, string.Format(CultureInfo.CurrentCulture, NScrapeResources.UnexpectedResponseOnFormSubmission, request.Destination))); }
public Group GetGroupById(string id) { string request = $"{baseURL}groups.getById?group_id={id}&fields=members_count&access_token={accessToken}&v=5.103"; WebClient webHelper = new WebClient(); string json = webHelper.SendRequest(request, "GET"); return(Parse(json)); }
public User GetUserById(string id) { string request = $"{baseURL}users.get?user_ids={id}&fields=bdate&access_token={accessToken}&v=5.103"; WebClient webHelper = new WebClient(); string json = webHelper.SendRequest(request, "GET"); return(Parse(json)); }
public User GetUserById(string id) { string request = $"{url}users/get/{id}"; WebClient webClient = new WebClient(); string json = webClient.SendRequest(request, "GET"); return(Parse(json)); }
public Group GetById(string id) { string request = $"{url}groups/getById/{id}"; WebClient webClient = new WebClient(); string json = webClient.SendRequest(request, "GET"); return(Parse(json)); }
public Group GetById(string id) { string request = $"{url}groups.getById?group_id={id}&access_token={accessToken}&v=5.103"; WebClient webClient = new WebClient(); string json = webClient.SendRequest(request, "GET"); return(Parse(json)); }
public User GetUserById(string id) { string request = $"{url}users.get?user_ids={id}&access_token={accessToken}&v=5.103"; WebClient webClient = new WebClient(); string json = webClient.SendRequest(request, "GET"); return(Parse(json)); }
public List <Group> Get(string id, string count) { string request = $"{url}groups.get?user_id={id}&count={count}&extended={"1"}&access_token={accessToken}&v=5.103"; WebClient webClient = new WebClient(); string json = webClient.SendRequest(request, "GET"); return(ParseList(json)); }
public List <Group> Get(string id, string count) { string request = $"{url}groups/get/{id}"; WebClient webClient = new WebClient(); string json = webClient.SendRequest(request, "GET"); Group[] res = ParseList(json, count); List <Group> groups = new List <Group>(); for (int i = 0; i < res.Length; i++) { groups.Add(res[i]); } return(groups); }
public void ImageWebResponseTest() { var webClient = new WebClient(); var uri = new Uri("http://sites.psu.edu/siowfa15/wp-content/uploads/sites/29639/2015/10/cat.jpg"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Image, response.ResponseType); Assert.Equal(uri, response.ResponseUrl); var imageResponse = response as ImageWebResponse; Assert.NotNull(imageResponse); Assert.NotNull(imageResponse.Image); } }
public void JsonWebResponseTest() { var webClient = new WebClient(); var uri = new Uri("http://jsonplaceholder.typicode.com/posts/1/comments"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Json, response.ResponseType); Assert.Equal(uri, response.ResponseUrl); var jsonWebResponse = response as JsonWebResponse; Assert.NotNull(jsonWebResponse); Assert.NotNull(jsonWebResponse.Json); Assert.Contains("\"email\": \"[email protected]\",", jsonWebResponse.Json); } }
public void JavaScriptWebResponseTest() { var webClient = new WebClient(); var uri = new Uri("http://www.javascriptkit.com/script/script2/offcanvasmenu.js"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.JavaScript, response.ResponseType); Assert.Equal(uri, response.ResponseUrl); var javaScriptWebResponse = response as JavaScriptWebResponse; Assert.NotNull(javaScriptWebResponse); Assert.NotNull(javaScriptWebResponse.JavaScript); Assert.Contains("var offcanvasmenu = (function($){", javaScriptWebResponse.JavaScript); } }
public void PlainTextWebResponseTest() { var webClient = new WebClient(); var uri = new Uri("https://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.PlainText, response.ResponseType); Assert.Equal(uri, response.ResponseUrl); var plainTextResponse = response as PlainTextWebResponse; Assert.NotNull(plainTextResponse); Assert.NotNull(plainTextResponse.PlainText); Assert.Contains("∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i)", plainTextResponse.PlainText); } }
public void HtmlWebResponseTest() { var webClient = new WebClient(); var uri = new Uri("https://github.com/darrylwhitmore/NScrape"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Html, response.ResponseType); Assert.Equal(uri, response.ResponseUrl); var htmlWebResponse = response as HtmlWebResponse; Assert.NotNull(htmlWebResponse); Assert.NotNull(htmlWebResponse.Html); Assert.Contains("<meta content=\"darrylwhitmore/NScrape\" property=\"og:title\" />", htmlWebResponse.Html); } }
public void HtmlWebResponseTest() { var webClient = new WebClient(); var uri = new Uri("https://github.com/darrylwhitmore/NScrape"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Html, response.ResponseType); Assert.Equal(uri, response.ResponseUrl); var htmlWebResponse = response as HtmlWebResponse; Assert.NotNull(htmlWebResponse); Assert.NotNull(htmlWebResponse.Html); Assert.Contains("\"NScrape - A web scraping framework for .NET\"", htmlWebResponse.Html); } }
public void HtmlWebResponseMetaFreshTagAutoRedirectTest() { var webClient = new WebClient(); var uri = new Uri( "http://www.pageresource.com/html/refex1.htm" ); var redirectUri = new Uri( "http://www.pageresource.com/html/refex2.htm" ); using ( var response = webClient.SendRequest( uri ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.Html, response.ResponseType ); Assert.Equal( redirectUri, response.ResponseUrl ); var htmlWebResponse = response as HtmlWebResponse; Assert.NotNull( htmlWebResponse ); Assert.NotNull( htmlWebResponse.Html ); Assert.Contains( "The New Page!", htmlWebResponse.Html ); } }
public void RedirectWebResponseAutoRedirectTest() { var webClient = new WebClient(); var uri = new Uri("https://jigsaw.w3.org/HTTP/300/301.html"); var redirectUri = new Uri("https://jigsaw.w3.org/HTTP/300/Overview.html"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Html, response.ResponseType); Assert.Equal(redirectUri, response.ResponseUrl); var htmlWebResponse = response as HtmlWebResponse; Assert.NotNull(htmlWebResponse); Assert.NotNull(htmlWebResponse.Html); Assert.Contains("A set of HTTP/1.1 redirect codes", htmlWebResponse.Html); } }
public void HtmlWebResponseMetaFreshTagAutoRedirectTest() { var webClient = new WebClient(); var uri = new Uri("http://www.pageresource.com/html/refex1.htm"); var redirectUri = new Uri("http://www.pageresource.com/html/refex2.htm"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Html, response.ResponseType); Assert.Equal(redirectUri, response.ResponseUrl); var htmlWebResponse = response as HtmlWebResponse; Assert.NotNull(htmlWebResponse); Assert.NotNull(htmlWebResponse.Html); Assert.Contains("The New Page!", htmlWebResponse.Html); } }
public void BinaryWebResponseDataPropertyBackwardsCompatibilityTest() { var webClient = new WebClient(); var uri = new Uri("https://download-cdn.getsync.com/stable/windows64/Resilio-Sync_x64.exe"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Binary, response.ResponseType); Assert.Equal(uri, response.ResponseUrl); var binaryResponse = response as BinaryWebResponse; Assert.NotNull(binaryResponse); #pragma warning disable 618 var data = binaryResponse.Data; #pragma warning restore 618 Assert.NotNull(data); } }
public void HtmlWebResponseMetaRefreshTagNoAutoRedirectTest() { var webClient = new WebClient(); var uri = new Uri("https://www.rapidtables.com/web/dev/redirect/html-redirect-test.html"); var redirectUri = new Uri("https://www.rapidtables.com/web/dev/html-redirect.html"); using (var response = webClient.SendRequest(uri, false)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Redirect, response.ResponseType); var redirectedWebResponse = response as RedirectedWebResponse; Assert.NotNull(redirectedWebResponse); Assert.Equal(redirectUri, redirectedWebResponse.RedirectUrl); Assert.NotNull(redirectedWebResponse.WebRequest); Assert.Equal(uri, redirectedWebResponse.ResponseUrl); Assert.Equal(uri, redirectedWebResponse.WebRequest.Destination); } }
public void HtmlWebResponseMetaFreshTagNoAutoRedirectTest() { var webClient = new WebClient(); var uri = new Uri("http://www.pageresource.com/html/refex1.htm"); var redirectUri = new Uri("http://www.pageresource.com/html/refex2.htm"); using (var response = webClient.SendRequest(uri, false)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Redirect, response.ResponseType); var redirectedWebResponse = response as RedirectedWebResponse; Assert.NotNull(redirectedWebResponse); Assert.Equal(redirectUri, redirectedWebResponse.RedirectUrl); Assert.NotNull(redirectedWebResponse.WebRequest); Assert.Equal(uri, redirectedWebResponse.ResponseUrl); Assert.Equal(uri, redirectedWebResponse.WebRequest.Destination); } }
public void BinaryWebResponseDataPropertyBackwardsCompatibilityTest() { var webClient = new WebClient(); var uri = new Uri( "https://download-cdn.getsync.com/stable/windows64/BitTorrent-Sync_x64.exe" ); using ( var response = webClient.SendRequest( uri ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.Binary, response.ResponseType ); Assert.Equal( uri, response.ResponseUrl ); var binaryResponse = response as BinaryWebResponse; Assert.NotNull( binaryResponse ); #pragma warning disable 618 var data = binaryResponse.Data; #pragma warning restore 618 Assert.NotNull( data ); } }
public void RedirectWebResponseNoAutoRedirectTest() { var webClient = new WebClient(); var uri = new Uri("https://jigsaw.w3.org/HTTP/300/301.html"); var redirectUri = new Uri("https://jigsaw.w3.org/HTTP/300/Overview.html"); using (var response = webClient.SendRequest(uri, false)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Redirect, response.ResponseType); var redirectedWebResponse = response as RedirectedWebResponse; Assert.NotNull(redirectedWebResponse); Assert.Equal(redirectUri, redirectedWebResponse.RedirectUrl); Assert.NotNull(redirectedWebResponse.WebRequest); Assert.Equal(uri, redirectedWebResponse.ResponseUrl); Assert.Equal(uri, redirectedWebResponse.WebRequest.Destination); } }
static void Main(string[] args) { IWebClient webClient = new WebClient(); string request = string.Empty; while (true) { Console.WriteLine("Request formats:"); Console.WriteLine("\t GET /tableName/{id} {\"key\"=\"value\", \"connectedTo\"=\"values\", \"fields\"=\"values\"}"); Console.WriteLine("\t ID is optional, but if you enter it, further queries will be ignored \n"); Console.WriteLine("\t POST /tableName {\"key\"=\"value\", \"key\"=\"value\" ... }"); Console.WriteLine("\t ID is incremental and unique, no need to pass it \n"); Console.WriteLine("\t PATCH /tableName/id {\"key\"=\"newValue\", \"key\"=\"newValue\" ... }"); Console.WriteLine("\t Update entity with id \n"); Console.WriteLine("\t DELETE /tableName/id"); Console.WriteLine("\t Deletes entity with id \n"); Console.WriteLine("\t Tables: resource (GET, POST, PATCH, DELETE), connection (POST, DELETE) \n"); Console.Write("Enter request (exit to quit): "); request = Console.ReadLine(); if (request.Equals("exit")) { break; } Console.WriteLine(Environment.NewLine + webClient.SendRequest(request)); Console.WriteLine("\nPress any key to enter another request."); Console.ReadKey(); Console.Clear(); } Console.ReadKey(); }
public void HtmlWebResponseMetaRefreshTagAutoRedirectTest() { var webClient = new WebClient(); var uri = new Uri("https://www.rapidtables.com/web/dev/redirect/html-redirect-test.html"); var redirectUri = new Uri("https://www.rapidtables.com/web/dev/html-redirect.html"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Html, response.ResponseType); Assert.Equal(redirectUri, response.ResponseUrl); var htmlWebResponse = response as HtmlWebResponse; Assert.NotNull(htmlWebResponse); Assert.NotNull(htmlWebResponse.Html); Assert.Contains("Press this link to redirect from", htmlWebResponse.Html); Assert.Contains("<em>html-redirect-test.htm</em>", htmlWebResponse.Html); Assert.Contains("back to this page:", htmlWebResponse.Html); } }
public void XmlWebResponseTest() { var webClient = new WebClient(); var uri = new Uri("https://www.w3schools.com/js/cd_catalog.xml"); using (var response = webClient.SendRequest(uri)) { Assert.NotNull(response); Assert.True(response.Success); Assert.Equal(WebResponseType.Xml, response.ResponseType); Assert.Equal(uri, response.ResponseUrl); var xmlResponse = response as XmlWebResponse; Assert.NotNull(xmlResponse); Assert.NotNull(xmlResponse.XDocument); var catalog = xmlResponse.XDocument.Element("CATALOG"); Assert.NotNull(catalog); var cds = catalog.Elements("CD"); Assert.NotNull(cds); Assert.Equal(26, cds.Count()); } }
public void HtmlWebResponseTest() { var webClient = new WebClient(); var uri = new Uri( "https://github.com/darrylwhitmore/NScrape" ); using ( var response = webClient.SendRequest( uri ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.Html, response.ResponseType ); Assert.Equal( uri, response.ResponseUrl ); var htmlWebResponse = response as HtmlWebResponse; Assert.NotNull( htmlWebResponse ); Assert.NotNull( htmlWebResponse.Html ); Assert.Contains( "<meta content=\"darrylwhitmore/NScrape\" property=\"og:title\" />", htmlWebResponse.Html ); } }
public void ImageWebResponseTest() { var webClient = new WebClient(); var uri = new Uri( "http://sites.psu.edu/siowfa15/wp-content/uploads/sites/29639/2015/10/cat.jpg" ); using ( var response = webClient.SendRequest( uri ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.Image, response.ResponseType ); Assert.Equal( uri, response.ResponseUrl ); var imageResponse = response as ImageWebResponse; Assert.NotNull( imageResponse ); Assert.NotNull( imageResponse.Image ); } }
public void XmlWebResponseTest() { var webClient = new WebClient(); var uri = new Uri( "http://www.xmlfiles.com/examples/cd_catalog.xml" ); using ( var response = webClient.SendRequest( uri ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.Xml, response.ResponseType ); Assert.Equal( uri, response.ResponseUrl ); var xmlResponse = response as XmlWebResponse; Assert.NotNull( xmlResponse ); Assert.NotNull( xmlResponse.XDocument ); var catalog = xmlResponse.XDocument.Element( "CATALOG" ); Assert.NotNull( catalog ); var cds = catalog.Elements( "CD" ); Assert.NotNull( cds ); Assert.Equal( 26, cds.Count() ); } }
public void HtmlWebResponseMetaFreshTagNoAutoRedirectTest() { var webClient = new WebClient(); var uri = new Uri( "http://www.pageresource.com/html/refex1.htm" ); var redirectUri = new Uri( "http://www.pageresource.com/html/refex2.htm" ); using ( var response = webClient.SendRequest( uri, false ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.Redirect, response.ResponseType ); var redirectedWebResponse = response as RedirectedWebResponse; Assert.NotNull( redirectedWebResponse ); Assert.Equal( redirectUri, redirectedWebResponse.RedirectUrl ); Assert.NotNull( redirectedWebResponse.WebRequest ); Assert.Equal( uri, redirectedWebResponse.ResponseUrl ); Assert.Equal( uri, redirectedWebResponse.WebRequest.Destination ); } }
public void JavaScriptWebResponseTest() { var webClient = new WebClient(); var uri = new Uri( "http://www.javascriptkit.com/script/script2/offcanvasmenu.js" ); using ( var response = webClient.SendRequest( uri ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.JavaScript, response.ResponseType ); Assert.Equal( uri, response.ResponseUrl ); var javaScriptWebResponse = response as JavaScriptWebResponse; Assert.NotNull( javaScriptWebResponse ); Assert.NotNull( javaScriptWebResponse.JavaScript ); Assert.Contains( "var offcanvasmenu = (function($){", javaScriptWebResponse.JavaScript ); } }
public void JsonWebResponseTest() { var webClient = new WebClient(); var uri = new Uri( "http://jsonplaceholder.typicode.com/posts/1/comments" ); using ( var response = webClient.SendRequest( uri ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.Json, response.ResponseType ); Assert.Equal( uri, response.ResponseUrl ); var jsonWebResponse = response as JsonWebResponse; Assert.NotNull( jsonWebResponse ); Assert.NotNull( jsonWebResponse.Json ); Assert.Contains( "\"email\": \"[email protected]\",", jsonWebResponse.Json ); } }
public void PlainTextWebResponseTest() { var webClient = new WebClient(); var uri = new Uri( "https://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt" ); using ( var response = webClient.SendRequest( uri ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.PlainText, response.ResponseType ); Assert.Equal( uri, response.ResponseUrl ); var plainTextResponse = response as PlainTextWebResponse; Assert.NotNull( plainTextResponse ); Assert.NotNull( plainTextResponse.PlainText ); Assert.Contains( "∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i)", plainTextResponse.PlainText ); } }
public void RedirectWebResponseAutoRedirectTest() { var webClient = new WebClient(); var uri = new Uri( "https://jigsaw.w3.org/HTTP/300/301.html" ); var redirectUri = new Uri( "https://jigsaw.w3.org/HTTP/300/Overview.html" ); using ( var response = webClient.SendRequest( uri ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.Html, response.ResponseType ); Assert.Equal( redirectUri, response.ResponseUrl ); var htmlWebResponse = response as HtmlWebResponse; Assert.NotNull( htmlWebResponse ); Assert.NotNull( htmlWebResponse.Html ); Assert.Contains( "A set of HTTP/1.1 redirect codes", htmlWebResponse.Html ); } }
public void RedirectWebResponseNoAutoRedirectTest() { var webClient = new WebClient(); var uri = new Uri( "https://jigsaw.w3.org/HTTP/300/301.html" ); var redirectUri = new Uri( "https://jigsaw.w3.org/HTTP/300/Overview.html" ); using ( var response = webClient.SendRequest( uri, false ) ) { Assert.NotNull( response ); Assert.True( response.Success ); Assert.Equal( WebResponseType.Redirect, response.ResponseType ); var redirectedWebResponse = response as RedirectedWebResponse; Assert.NotNull( redirectedWebResponse ); Assert.Equal( redirectUri, redirectedWebResponse.RedirectUrl ); Assert.NotNull( redirectedWebResponse.WebRequest ); Assert.Equal( uri, redirectedWebResponse.ResponseUrl ); Assert.Equal( uri, redirectedWebResponse.WebRequest.Destination ); } }