WebClient, не отправляет параметры
Я пытаюсь получить токен с моего сайта 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, но параметры отсутствуют.
Что я делаю не так?
редактировать: я уверен, что параметры являются правильными, потому что я проверил в браузере, и он работает хорошо.
1 ответ
Решение
Я запустил это с Fiddler, и ваш код отправляет запрос со следующим содержимым в теле запроса:
cmd=logon&email=test-email&password=test-password
Вместо этого я считаю, что вы должны отправлять эту информацию в строке запроса согласно документации (см. Раздел "Вход в систему"):
http://www.example.com/api.asp?cmd=logon&email=xxx@example.com&password=BigMac
Если вы хотите использовать NameValueCollection
чтобы построить строку запроса, этот ответ предоставляет способ сделать это.