WebClient, não envia parâmetros
-
28-10-2019 - |
Pergunta
Tento obter o token de meu site fogbugz, a seguir:
http://fogbugz.stackexchange.com/fogbugz-xml-api
Eu tenho:
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));
}
Abaixo da resposta do servidor:
<?xml version="1.0" encoding="UTF-8"?><response><error code="1">Nom d'utilisateur ou mot de passe incorrect</error></response>
Posso ver a solicitação nos logs do IIS, mas os parâmetros estão ausentes.
O que estou fazendo de errado?
editar: Tenho certeza de que os parâmetros estão corretos, porque testei no navegador e funciona bem.
Solução
Eu executei isso com o Fiddler e seu código envia uma solicitação com o seguinte conteúdo no corpo da solicitação:
cmd=logon&email=test-email&password=test-password
Em vez disso, acredito que você deve enviar essas informações na string de consulta de acordo com a documentação (consulte a seção "Fazendo logon"):
http://www.example.com/api.asp?cmd=logon&email=xxx@example.com&password=BigMac
Se você deseja usar um NameValueCollection
para construir sua querystring, esta resposta fornece uma maneira de fazer isso.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow