我正在计算新的HttpClient
。
我尝试像这样发布一个http uri:
http://server/API/user/login?login=name&password=password
我认为这是要走的路:
using (var client = new HttpClient())
{
var values = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("login", "user"),
new KeyValuePair<string, string>("password ", "password")
};
var content = new FormUrlEncodedContent(values);
var response = await client.PostAsync("http://server/REST/user/login", content);
}
我能让它发挥作用的唯一方法是:
using (var client = new HttpClient())
{
var response = await client.PostAsync("http://server/REST/user/login?login=user&password=password",null);
}
最后一种方式是正确的方式还是我在第一种方法中做错了什么?
答案 0 :(得分:1)
示例显示它在Cookie
标题中传递,而不是正文。如果我正确解释了API,您必须确实在URL中传递用户名和密码,并为Cookie
标头提供网址编码数据。
基本上:使用第二种方法,对于所有后续调用,添加:
client.DefaultRequestHeaders.Add("Cookie", await content.ReadAsStringAsync());