【发布时间】:2014-08-16 10:49:41
【问题描述】:
我正在寻找新的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);
}
最后一种方法是正确的方法还是我在第一种方法中做错了什么?
【问题讨论】:
-
前者似乎是正确的:您必须将这些值作为正文的一部分传递,而不是像在第二个选项中那样传递 URL。你能确切地澄清什么不起作用吗?你确定这就是它应该如何工作的吗?没有人将登录名和密码作为 URL 的一部分发送。
-
不同的东西。一种形式需要 URL 上的参数。另一个期望帖子内容中的数据。
-
尝试实施此解决方案:stackoverflow.com/questions/15176538/…。也许它可以解决你的问题
-
@JeroenVannevel,这是 API:confluence.jetbrains.com/display/YTD4/Log+in+to+YouTrack
-
如果没有正文,你确定这应该是 POST 吗?
标签: c# post httpclient