京东价格监控软件开发技术探讨九:C#判断京东登录是否需要验证码

项目组为了实现通过C#编程自动登录京东商城,通过查阅网上资料,不间断的重复测试,终于找到了比较可靠的方法。但是如何判断验证码是否需要输入,是项目组遇到的又一个难题。

根据目前的情况来看,京东商城登录规则是:第一次登录不用输入验证码,登录失败或者多次登录请求就会要求输入验证码。登录完成后,在退出程序时,建议最好是做个退出操作,否则很可能下次登录就要输入验证码了。


有两种方式可以判断登录京东商城是否需要验证码:

1、在登录页面中有<div id="o-authcode" class="item item-vcode item-fore4  hide ">,通过判断是否具备“hide”来判断,若有Hide表示不用验证码,若没有,表示需要验证码;

2、通过获取https://passport.jd.com/uc/showAuthCode?r=0.7007493122946471&version=2015返回的Json值({"verifycode":false}),若值为False则不需要验证码,否则需要验证码。

        /// <summary>
        /// 是否要验证码
        /// </summary>
        private bool CheckAuthcode()
        {
            //判断是否需要验证 返回Json({"verifycode":false})
            //https://passport.jd.com/uc/showAuthCode?r=0.7007493122946471&version=2015
            HttpItem item = new HttpItem();
            HttpHelper helper = new HttpHelper();
            HttpResult result = new HttpResult();
            string r = new Random().NextDouble().ToString();
            item.URL = string.Format("https://passport.jd.com/uc/showAuthCode?r={0}&version=2015",r);
            item.ContentType = "application/x-www-form-urlencoded; charset=utf-8";
            item.Postdata = string.Format("loginName={0}",_jdLoginer.loginname);
            result = helper.GetHtml(item);
            if (result.Html.ToLower().Contains("false"))
            {
                return false;
            }
            else
            {
                return true;
            }
        }



另外也可以在登录结果中进行判断,若在登录结果中提示:

({"emptyAuthcode":"\u8bf7\u8f93\u5165\u9a8c\u8bc1\u7801"})  表示“请输入验证码”。


杀京东 做最走心的京东价格监控软件 免费开源的价格监控软件 欢迎加入QQ群415014949一起讨论

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值