WebClient, no envía parámetros
-
28-10-2019 - |
Pregunta
Intento obtener el token de mi sitio web fogbugz, de la siguiente manera:
http://fogbugz.stackexchange.com/fogbugz-xml-api
Tengo :
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));
}
Debajo de la respuesta del servidor:
<?xml version="1.0" encoding="UTF-8"?><response><error code="1">Nom d'utilisateur ou mot de passe incorrect</error></response>
Puedo ver la solicitud en los registros de IIS pero faltan parámetros.
¿Qué estoy haciendo mal?
editar :Estoy seguro de que los parámetros son correctos porque lo probé en el navegador y funciona bien.
Solución
Ejecuté esto con Fiddler y su código envía una solicitud con el siguiente contenido en el cuerpo de la solicitud:
cmd=logon&email=test-email&password=test-password
En cambio, creo que debería enviar esta información en la cadena de consulta según el documentación (consulte la sección "Iniciar sesión"):
http://www.example.com/api.asp?cmd=logon&email=xxx@example.com&password=BigMac
Si quieres usar un NameValueCollection
para construir su cadena de consulta, esto respuesta proporciona una manera de hacerlo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow