Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
I've been doing this with RestSharp, but I'm trying to migrate off that.
How can I do this with
HttpClient
, please?
I have the following RestSharp code
var restRequest = new RestRequest("account/authenticate", Method.POST);
restRequest.AddParameter("Email", email);
restRequest.AddParameter("Password", password);
How can I convert that to use the (Microsoft.Net.Http) HttpClient class, instead?
Take note: I'm doing a POST
Also, this is with the PCL assembly.
Lastly, can I add in a custom header. Say: "ILikeTurtles", "true".
–
–
–
–
–
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("ILikeTurtles", "true");
var parameters = new Dictionary<string, string>();
parameters["Email"] = "myemail";
parameters["Password"] = "password";
var result = await httpClient.PostAsync("http://www.example.com/", new FormUrlEncodedContent(parameters));
If you're not opposed to using a library per se, as long as it's HttpClient under the hood, Flurl is another alternative. [disclaimer: I'm the author]
This scenario would look like this:
var result = await "http://www.example.com"
.AppendPathSegment("account/authenticate")
.WithHeader("ILikeTurtles", "true")
.PostUrlEncodedAsync(new { Email = email, Password = password });
This code isn't using HttpClient but it's using the System.Net.WebClient class, i guess it does the same thing though.
private static void Main(string[] args)
string uri = "http://www.example.com/";
string email = "email@example.com";
string password = "secret123";
var client = new WebClient();
// Adding custom headers
client.Headers.Add("ILikeTurtles", "true");
// Adding values to the querystring
var query = HttpUtility.ParseQueryString(string.Empty);
query["email"] = email;
query["password"] = password;
string queryString = query.ToString();
// Uploadstring does a POST request to the specified server
client.UploadString(uri, queryString);
Thanks for contributing an answer to Stack Overflow!
- 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.
To learn more, see our tips on writing great answers.