WebClient sendet keine Parameter
-
28-10-2019 - |
Frage
Ich versuche, das Token von meiner Fogbugz-Website zu erhalten.
http://fogbugz.stackexchange.com/fogbugz-xml-api
Ich habe:
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));
}
Unterhalb der Serverantwort:
<?xml version="1.0" encoding="UTF-8"?><response><error code="1">Nom d'utilisateur ou mot de passe incorrect</error></response>
Ich kann die Anforderung in IIS-Protokollen sehen, aber es fehlen Parameter.
Was mache ich falsch?
Bearbeiten: Ich bin sicher, dass die Parameter korrekt sind, da ich sie im Browser getestet habe und sie gut funktionieren.
Lösung
Ich habe dies mit Fiddler ausgeführt, und Ihr Code sendet eine Anfrage mit dem folgenden Inhalt im Anfragetext:
cmd=logon&email=test-email&password=test-password
Stattdessen sollten Sie diese Informationen in der Abfragezeichenfolge gemäß der Dokumentation http://www.example.com/api.asp?cmd=logon&email=xxx@example.com&password=BigMac
Wenn Sie einen NameValueCollection
zum Erstellen Ihres Querystrings verwenden möchten, bietet diese Antwort eine Möglichkeit, dies zu tun.