【发布时间】:2019-09-13 18:23:55
【问题描述】:
我必须发布到下面列出的 html 表单中。
<input type="text" name="user[username]" value="">
<input type="password" name="user[password]" >
休息锐利它可以正常工作 - 代码如下:
var clientRest = new RestClient(url);
var restRequest = new RestRequest();
restRequest.Method = Method.POST;
restRequest.AddParameter("user[username]", username);
restRequest.AddParameter("user[password]", password);
restRequest.AddHeader("Content-Type", "application/x-www-form-urlencoded");
IRestResponse responseRestSharp = clientRest.Execute(restRequest);
string content = responseRestSharp.Content;
但是当我尝试使用 System.Net.Http 提供的 HttpClient 时,我没有在响应中登录到会话 - 代码如下:
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(@"application/x-www-form-urlencoded"));
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("user[username]", username),
new KeyValuePair<string, string>("user[password]", password)
string response = client.PostAsync(url, content).Result.Content.ReadAsStringAsync().Result;
....
我问自己 FormUlrEncodedContent 是否正确地将其转换为 name="user[username]" 和 name="user[password]" 就像 restsharp 使用它的 AddParameter 一样。
【问题讨论】:
-
你得到什么错误?
-
这有什么更新吗?
标签: c# post .net-core dotnet-httpclient