REST API request automation The 2019 Stack Overflow Developer Survey Results Are InFluent LinkedIn REST API client interface designMaking a call to a server running a RESTful serviceSynchronous and asynchronous methods in a client libraryNon-blocking, non-threaded HTTP client implementationSimple and reusable system for user registration and tracking and auto-updates - follow-upSynchronous / asynchronous REST clientA PHP API which has an endpoint for processing a user's facebook login detailsFetching user details, posts, and comments using promises in ExpressJS.NET API Layer for FreshserviceDesign Web API with Command Handler
Potential by Assembling Charges
Spanish for "widget"
aging parents with no investments
JSON.serialize: is it possible to suppress null values of a map?
Is an up-to-date browser secure on an out-of-date OS?
CiviEvent: Public link for events of a specific type
Could a US political party gain complete control over the government by removing checks & balances?
Limit the amount of RAM Mathematica may access?
Landlord wants to switch my lease to a "Land contract" to "get back at the city"
I see my dog run
Patience, young "Padovan"
Is bread bad for ducks?
How to reverse every other sublist of a list?
Why did Howard Stark use all the Vibranium they had on a prototype shield?
Unbreakable Formation vs. Cry of the Carnarium
What do hard-Brexiteers want with respect to the Irish border?
How do you say "canon" as in "official for a story universe"?
Should I write numbers in words or as numerals when there are multiple next to each other?
How come people say “Would of”?
How to create dashed lines/arrows in Illustrator
How long do I have to send my income tax payment to the IRS?
Lethal sonic weapons
Where to refill my bottle in India?
Does a dangling wire really electrocute me if I'm standing in water?
REST API request automation
The 2019 Stack Overflow Developer Survey Results Are InFluent LinkedIn REST API client interface designMaking a call to a server running a RESTful serviceSynchronous and asynchronous methods in a client libraryNon-blocking, non-threaded HTTP client implementationSimple and reusable system for user registration and tracking and auto-updates - follow-upSynchronous / asynchronous REST clientA PHP API which has an endpoint for processing a user's facebook login detailsFetching user details, posts, and comments using promises in ExpressJS.NET API Layer for FreshserviceDesign Web API with Command Handler
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
I created a class to automate some requests for an API. Can I improve this code in any way?
The code itself is very simple and easy to understand.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using RestSharp;
namespace Dummie
public class AutoRequest
RestClient client;
public CancellationTokenSource Cancel;
string captchaResult = "";
public AutoRequest(int timeout)
client = new RestClient("http://127.0.0.1");
client.Timeout = timeout;
client.CookieContainer = new System.Net.CookieContainer();
Cancel = new CancellationTokenSource();
private WebProxy ParseProxy(string proxy)
try
var p = proxy.Split(':');
if (p.Count() > 2)
var webproxy = new WebProxy(p[0], Convert.ToInt32(p[1]));
webproxy.Credentials = new NetworkCredential(p[2], p[3]);
return webproxy;
else
return new WebProxy(p[0], Convert.ToInt32(p[1]));
catch (Exception)
return null;
public async Task<bool> TestProxy(string proxy)
client.Proxy = ParseProxy(proxy);
var request = new RestRequest("http://127.0.0.1", Method.GET);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if (response.StatusCode != System.Net.HttpStatusCode.OK)
return false;
return true;
public async Task<bool> CreatCookies(string apiCaptcha)
captchaResult = await SolveCaptchaAsync(apiCaptcha);
var request = new RestRequest("http://127.0.0.1", Method.GET);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if(response.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception();
return true;
private async Task<string> SolveCaptchaAsync(string apiCaptcha)
TwoCaptcha.Solve solver = new TwoCaptcha.Solve();
var result = await solver.ReCaptchaV2Async(apiCaptcha, "6LeLvl", "http://127.0.0.1");
return result.Request;
public async Task<string> SignUp()
var request = new RestRequest("http://127.0.0.1/api_test", Method.POST);
request.AddParameter("g-recaptcha-response", captchaResult);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if (response.StatusCode != System.Net.HttpStatusCode.OK)
return "[ERROR] Failed during request. Status: " + response.StatusDescription;
if (response.ResponseUri.ToString() == "http://127.0.0.1/api_test?result=ok")
return "[OK] Account Successfully Created";
else
return "[ERROR] There was an error creating your account. URI: " + response.ResponseUri.ToString();
c# asynchronous rest client
New contributor
$endgroup$
add a comment |
$begingroup$
I created a class to automate some requests for an API. Can I improve this code in any way?
The code itself is very simple and easy to understand.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using RestSharp;
namespace Dummie
public class AutoRequest
RestClient client;
public CancellationTokenSource Cancel;
string captchaResult = "";
public AutoRequest(int timeout)
client = new RestClient("http://127.0.0.1");
client.Timeout = timeout;
client.CookieContainer = new System.Net.CookieContainer();
Cancel = new CancellationTokenSource();
private WebProxy ParseProxy(string proxy)
try
var p = proxy.Split(':');
if (p.Count() > 2)
var webproxy = new WebProxy(p[0], Convert.ToInt32(p[1]));
webproxy.Credentials = new NetworkCredential(p[2], p[3]);
return webproxy;
else
return new WebProxy(p[0], Convert.ToInt32(p[1]));
catch (Exception)
return null;
public async Task<bool> TestProxy(string proxy)
client.Proxy = ParseProxy(proxy);
var request = new RestRequest("http://127.0.0.1", Method.GET);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if (response.StatusCode != System.Net.HttpStatusCode.OK)
return false;
return true;
public async Task<bool> CreatCookies(string apiCaptcha)
captchaResult = await SolveCaptchaAsync(apiCaptcha);
var request = new RestRequest("http://127.0.0.1", Method.GET);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if(response.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception();
return true;
private async Task<string> SolveCaptchaAsync(string apiCaptcha)
TwoCaptcha.Solve solver = new TwoCaptcha.Solve();
var result = await solver.ReCaptchaV2Async(apiCaptcha, "6LeLvl", "http://127.0.0.1");
return result.Request;
public async Task<string> SignUp()
var request = new RestRequest("http://127.0.0.1/api_test", Method.POST);
request.AddParameter("g-recaptcha-response", captchaResult);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if (response.StatusCode != System.Net.HttpStatusCode.OK)
return "[ERROR] Failed during request. Status: " + response.StatusDescription;
if (response.ResponseUri.ToString() == "http://127.0.0.1/api_test?result=ok")
return "[OK] Account Successfully Created";
else
return "[ERROR] There was an error creating your account. URI: " + response.ResponseUri.ToString();
c# asynchronous rest client
New contributor
$endgroup$
add a comment |
$begingroup$
I created a class to automate some requests for an API. Can I improve this code in any way?
The code itself is very simple and easy to understand.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using RestSharp;
namespace Dummie
public class AutoRequest
RestClient client;
public CancellationTokenSource Cancel;
string captchaResult = "";
public AutoRequest(int timeout)
client = new RestClient("http://127.0.0.1");
client.Timeout = timeout;
client.CookieContainer = new System.Net.CookieContainer();
Cancel = new CancellationTokenSource();
private WebProxy ParseProxy(string proxy)
try
var p = proxy.Split(':');
if (p.Count() > 2)
var webproxy = new WebProxy(p[0], Convert.ToInt32(p[1]));
webproxy.Credentials = new NetworkCredential(p[2], p[3]);
return webproxy;
else
return new WebProxy(p[0], Convert.ToInt32(p[1]));
catch (Exception)
return null;
public async Task<bool> TestProxy(string proxy)
client.Proxy = ParseProxy(proxy);
var request = new RestRequest("http://127.0.0.1", Method.GET);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if (response.StatusCode != System.Net.HttpStatusCode.OK)
return false;
return true;
public async Task<bool> CreatCookies(string apiCaptcha)
captchaResult = await SolveCaptchaAsync(apiCaptcha);
var request = new RestRequest("http://127.0.0.1", Method.GET);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if(response.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception();
return true;
private async Task<string> SolveCaptchaAsync(string apiCaptcha)
TwoCaptcha.Solve solver = new TwoCaptcha.Solve();
var result = await solver.ReCaptchaV2Async(apiCaptcha, "6LeLvl", "http://127.0.0.1");
return result.Request;
public async Task<string> SignUp()
var request = new RestRequest("http://127.0.0.1/api_test", Method.POST);
request.AddParameter("g-recaptcha-response", captchaResult);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if (response.StatusCode != System.Net.HttpStatusCode.OK)
return "[ERROR] Failed during request. Status: " + response.StatusDescription;
if (response.ResponseUri.ToString() == "http://127.0.0.1/api_test?result=ok")
return "[OK] Account Successfully Created";
else
return "[ERROR] There was an error creating your account. URI: " + response.ResponseUri.ToString();
c# asynchronous rest client
New contributor
$endgroup$
I created a class to automate some requests for an API. Can I improve this code in any way?
The code itself is very simple and easy to understand.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using RestSharp;
namespace Dummie
public class AutoRequest
RestClient client;
public CancellationTokenSource Cancel;
string captchaResult = "";
public AutoRequest(int timeout)
client = new RestClient("http://127.0.0.1");
client.Timeout = timeout;
client.CookieContainer = new System.Net.CookieContainer();
Cancel = new CancellationTokenSource();
private WebProxy ParseProxy(string proxy)
try
var p = proxy.Split(':');
if (p.Count() > 2)
var webproxy = new WebProxy(p[0], Convert.ToInt32(p[1]));
webproxy.Credentials = new NetworkCredential(p[2], p[3]);
return webproxy;
else
return new WebProxy(p[0], Convert.ToInt32(p[1]));
catch (Exception)
return null;
public async Task<bool> TestProxy(string proxy)
client.Proxy = ParseProxy(proxy);
var request = new RestRequest("http://127.0.0.1", Method.GET);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if (response.StatusCode != System.Net.HttpStatusCode.OK)
return false;
return true;
public async Task<bool> CreatCookies(string apiCaptcha)
captchaResult = await SolveCaptchaAsync(apiCaptcha);
var request = new RestRequest("http://127.0.0.1", Method.GET);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if(response.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception();
return true;
private async Task<string> SolveCaptchaAsync(string apiCaptcha)
TwoCaptcha.Solve solver = new TwoCaptcha.Solve();
var result = await solver.ReCaptchaV2Async(apiCaptcha, "6LeLvl", "http://127.0.0.1");
return result.Request;
public async Task<string> SignUp()
var request = new RestRequest("http://127.0.0.1/api_test", Method.POST);
request.AddParameter("g-recaptcha-response", captchaResult);
var response = await client.ExecuteTaskAsync(request, Cancel.Token);
if (response.StatusCode != System.Net.HttpStatusCode.OK)
return "[ERROR] Failed during request. Status: " + response.StatusDescription;
if (response.ResponseUri.ToString() == "http://127.0.0.1/api_test?result=ok")
return "[OK] Account Successfully Created";
else
return "[ERROR] There was an error creating your account. URI: " + response.ResponseUri.ToString();
c# asynchronous rest client
c# asynchronous rest client
New contributor
New contributor
edited 11 mins ago
200_success
131k17157422
131k17157422
New contributor
asked 4 hours ago
JohsnJohsn
111
111
New contributor
New contributor
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "196"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Johsn is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f217167%2frest-api-request-automation%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Johsn is a new contributor. Be nice, and check out our Code of Conduct.
Johsn is a new contributor. Be nice, and check out our Code of Conduct.
Johsn is a new contributor. Be nice, and check out our Code of Conduct.
Johsn is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f217167%2frest-api-request-automation%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown