WebClient, non invia parametri
-
28-10-2019 - |
Domanda
Provo a ottenere il token dal mio sito Web fogbugz, seguendo:
http://fogbugz.stackexchange.com/fogbugz-xml-api
Ho:
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));
}
Sotto la risposta del server:
<?xml version="1.0" encoding="UTF-8"?><response><error code="1">Nom d'utilisateur ou mot de passe incorrect</error></response>
Riesco a vedere la richiesta nei log di IIS ma i parametri sono assenti.
Cosa sto sbagliando?
modifica: sono sicuro che i parametri siano corretti perché ho provato nel browser e funziona bene.
Soluzione
L'ho eseguito con Fiddler e il tuo codice invia una richiesta con il seguente contenuto nel corpo della richiesta:
cmd=logon&email=test-email&password=test-password
Invece, credo che dovresti inviare queste informazioni nella stringa di query come da documentazione (vedere la sezione "Accesso"):
http://www.example.com/api.asp?cmd=logon&email=xxx@example.com&password=BigMac
Se desideri utilizzare un NameValueCollection
per creare la stringa di query, questa risposta fornisce un modo per farlo.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow