a01163125 2014-04-10 12:08
浏览 1270

抓包的时候字典里面没有值。

为什么这个会有错误呢? 谁有类似的demo吗?

private void btnLogin_Click(object sender, EventArgs e)
{
string username = txtUserName.Text;
string password = txtPwd.Text;

        HttpItem itemSign = new HttpItem()
        {
            URL = "https://account.xiaomi.com/pass/serviceLogin",
        };
        HttpHelper helperSign = new HttpHelper();
        HttpResult resultSign = helperSign.GetHtml(itemSign);
        string signHtml = resultSign.Html;
        txtInfo.Text = signHtml;
        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        doc.LoadHtml(signHtml);
        var htmlnodes = doc.DocumentNode.Descendants();
        Dictionary<string, string> dict = new Dictionary<string, string>();
        foreach (var item in htmlnodes)
        {
            if (item.Attributes["name"] != null && item.Attributes["value"] != null)
            {
                dict.Add(item.Attributes["name"].Value, item.Attributes["value"].Value);
            }
        }
        string passToken = HttpUtility.UrlEncode(dict["passToken"]);
        string callback = HttpUtility.UrlEncode(dict["callback"]);
        string sid = HttpUtility.UrlEncode(dict["sid"]);
        string qs = HttpUtility.UrlEncode(dict["qs"]);
        string hidden = HttpUtility.UrlEncode(dict["hidden"]);
        string _sign = HttpUtility.UrlEncode(dict["_sign"]);
        string auto = HttpUtility.UrlEncode(dict["auto"]);

        cookies = resultSign.Cookie;

        HttpItem itemLogin = new HttpItem()         //登陆Post
        {
            URL = "https://account.xiaomi.com/pass/serviceLoginAuth2",
            Method = "POST",
            Cookie = cookies,
            Referer = "https://account.xiaomi.com/pass/serviceLogin",
            ContentType = "application/x-www-form-urlencoded",
            Postdata = string.Format("passToken={0}&user={1}&pwd={2}&callback={3}&sid={4}&qs={5}&hidden={6}&_sign={7}&auto={8}", passToken, username, password, callback, sid, qs, hidden, _sign, auto)
        };
        HttpHelper helperLogin = new HttpHelper();
        HttpResult resultLogin = helperLogin.GetHtml(itemLogin);

        if (resultLogin.Html.Contains("小米帐户 - 登录"))
        {
            AppendText(username + "登陆失败\n"); return;
        }
        AppendText(username + "登陆成功");
        cookies += ";" + resultLogin.Cookie;
        // AppendText(cookies);

    }
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥40 复杂的限制性的商函数处理
    • ¥15 程序不包含适用于入口点的静态Main方法
    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码