[英]How can I convert this .NET RestSharp code to Microsoft.Net.Http HttpClient code?
我試圖找出如何使用HttpClient
來POST
一些簡單的參數。
我一直在用RestSharp做這個,但我正試圖遷移它。
我怎么能用HttpClient
做到這一點,好嗎?
我有以下RestSharp代碼
var restRequest = new RestRequest("account/authenticate", Method.POST);
restRequest.AddParameter("Email", email);
restRequest.AddParameter("Password", password);
我該如何轉換它來使用(Microsoft.Net.Http) HttpClient
類呢?
請注意:我正在進行POST
此外,這是PCL組件。
最后,我可以添加自定義標頭。 說: "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));
如果您不反對使用庫本身,只要它是引擎蓋下的HttpClient
, Flurl就是另一種選擇。 [免責聲明:我是作者]
這種情況看起來像這樣:
var result = await "http://www.example.com"
.AppendPathSegment("account/authenticate")
.WithHeader("ILikeTurtles", "true")
.PostUrlEncodedAsync(new { Email = email, Password = password });
這段代碼沒有使用HttpClient,但它使用的是System.Net.WebClient類,我猜它雖然做了同樣的事情。
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.