WebClient,不发送参数

发布于 2024-12-19 22:48:25 字数 805 浏览 2 评论 0 原文

我尝试从我的fogbugz 网站获取令牌,如下:

http://fogbugz.stackexchange.com/fogbugz-xml-api

我有:

using (var wb = new WebClient())
{   
                var data = new NameValueCollection();
                data["cmd"] = HttpUtility.UrlEncode(cmdLogon);
                data["email"] = HttpUtility.UrlEncode(email);
                data["password"] = HttpUtility.UrlEncode(password);
                content = encoding.GetString(wb.UploadValues(url, "POST", data));
 }

在服务器响应下方:

<?xml version="1.0" encoding="UTF-8"?><response><error code="1">Nom d'utilisateur ou mot de passe incorrect</error></response>

我可以在 IIS 日志中看到请求,但缺少参数。

我做错了什么?

编辑:我确信参数是正确的,因为我在浏览器中进行了测试并且运行良好。

I try to get the token from my fogbugz website, folowing :

http://fogbugz.stackexchange.com/fogbugz-xml-api

I have :

using (var wb = new WebClient())
{   
                var data = new NameValueCollection();
                data["cmd"] = HttpUtility.UrlEncode(cmdLogon);
                data["email"] = HttpUtility.UrlEncode(email);
                data["password"] = HttpUtility.UrlEncode(password);
                content = encoding.GetString(wb.UploadValues(url, "POST", data));
 }

Below the Server Response :

<?xml version="1.0" encoding="UTF-8"?><response><error code="1">Nom d'utilisateur ou mot de passe incorrect</error></response>

I can see the request in IIS logs but parameters are absent.

What I'm doing wrong?

edit : I'm sure parameters are correct cause I tested In the browser and it work well.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情绪失控 2024-12-26 22:48:25

我用 Fiddler 运行了这个,您的代码发送了一个请求,请求正文中包含以下内容:

cmd=logon&email=test-email&password=test-password

相反,我相信您应该按照 文档(请参阅“登录”部分):

http://www.example.com/api.asp?cmd=logon&[email protected]&password=BigMac

如果您想使用 NameValueCollection 构建查询字符串,这个答案提供了一种方法来做到这一点。

I ran this with Fiddler, and your code sends a request with the following content in the request body:

cmd=logon&email=test-email&password=test-password

Instead, I believe you should be sending this information in the query string as per the documentation (see the "Logging On" section):

http://www.example.com/api.asp?cmd=logon&[email protected]&password=BigMac

If you want to use a NameValueCollection to build your querystring, this answer provides a way to do that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文