大部分代码都是参考的这边,我只是在他的逻辑上实现了自动通过验证码,放上主逻辑的代码吧,图片识别我用的若快,可以去接其他平台

https://blog.csdn.net/u013232789/article/details/74456204?locationNum=5&fps=1

public synchronized boolean login() {

        //判断是否已登录
String verify = HttpClientUtil.get("https://home.jd.com/getUserVerifyRight.action");
if (verify.length() < 200) {
return true;
} try {
Document doc = Jsoup.parse(HttpClientUtil.get("https://passport.jd.com/new/login.aspx"));
Thread.sleep(1000);
Elements elements = doc.select("form[id=formlogin] input[type=hidden]");
Map<String, String> map = new HashMap<String, String>();
String k, v;
for (Element input : elements) {
k = input.attr("name");
v = input.attr("value");
if (StringUtils.isNotBlank(k)) {
map.put(k, v);
System.out.println(input);
}
}
map.put("loginname", keyValueMap.get("JDAccount"));
map.put("nloginpwd", keyValueMap.get("JDPassword"));
map.put("eid",
"RXI4RZELZBUFTKRYDTWZHA734GHXAKCA5SJQSPGLJ2RXCIZUT3PAYXSRGSC57USYLK6432Z7WJW36ZEEGVWMLILT3E");
map.put("fp", "ccbe046c9993c80f4838e591159ce563"); String result = HttpClientUtil.get(
"https://seq.jd.com/jseqf.html?bizId=passport_jd_com_login_pc&platform=js&version=1");
Thread.sleep(1000);
String pattern = "sessionId=.+_jdtdseq_config_data";
// 创建 Pattern 对象
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(result);
if (m.find()) {
System.out.println(m.group().substring(11, 29));
map.put("seqSid", m.group().substring(11, 29));
}
String url = "https://passport.jd.com/uc/loginService?";
url = url + "&uuid=" + map.get("uuid") + "&r=" + Math.random() + "&version=2015";
System.out.println("url: " + url);
String post = HttpClientUtil.post(url, map);
System.out.println(post);
String ans = decodeUnicode(post);
System.out.println(ans);
if (ans.contains("emptyAuthcode")) {
String authUrl = "https://authcode.jd.com/verify/image";
Map<String, String> param = new HashMap<>();
param.put("a", "1");
param.put("acid", map.get("uuid"));
param.put("uid", map.get("uuid"));
param.put("yys", String.valueOf(System.currentTimeMillis()));
Map<String, String> header = new HashMap<>();
header.put("Referer", "https://passport.jd.com/new/login.aspx");
HttpResponse response = HttpClientUtil.getForResponse(authUrl, param, header);
String authCode = RuoKuai.createByPost(keyValueMap.get("RKAccount"), keyValueMap.get("RKPassword"),
response.getEntity().getContent());
System.out.println(authCode);
map.put("authcode", authCode);
ans = decodeUnicode(HttpClientUtil.post(url, map));
log.info(ans);
}
if (ans.contains("success")) {
return true;
} else {
return false;
}
} catch (Exception e) {
log.error(TypeUtil.getErrorInfoFromException(e));
return false;
} }

  

java京东自动登录的更多相关文章

  1. Python实现京东自动登录

    配置好webdriver,用的是Chrome的 import cv2 import time import numpy as np from selenium import webdriver fro ...

  2. QQ模拟自动登录实现

    QQ模拟自动登录实现 本篇文章主要介绍"QQ模拟自动登录实现(带验证码)",主要涉及到java 实现QQ自动登录(带验证码)方面的内容,对于java 实现QQ自动登录(带验证码)感 ...

  3. java 自动登录代码

    javaBean的代码    package bean;    import java.io.Serializable;    public class Admin implements Serial ...

  4. java代码实现自动登录功能

    通常我们登录某网站,会有选择保存几天,或者是几个星期不用登录,之后输入该网站地址无需登录直接进入主页面,那么这就叫做自动登录,怎么实现呢,下面我以一个小例子来演示一下 登录页面:login.jsp & ...

  5. 单点登录 SSO, 自动登录 , java 加密,ssl原理, Tomcat配置SSL

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 单点登录的英文简称为SSO(single sign on),单点登录功能使得用户只要登录 ...

  6. java浏览器控件jxbrowser(简单demo模拟自动登录与点击)

    写在前面: 老大让我写个脚本自动给他写dms有一段时间了,说实话当时不知道老大指的这个脚本是什么?毕竟是做web的,难道是写个数据库sql语句脚本吗?也就放在了一边.巧了,最近一个朋友说他之前写了个程 ...

  7. [原创]java WEB学习笔记29:Cookie Demo 之自动登录

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. Java 扫描微信公众号二维码,关注并自动登录网站

    https://blog.csdn.net/qq_42851002/article/details/81327770 场景:用户扫描微信公众号的二维码,关注后自动登录网站,若已关注则直接登录. 逻辑: ...

  9. 转:实现Java Web程序的自动登录

    有很多Web程序中第一次登录后,在一定时间内(如2个小时)再次访问同一个Web程序时就无需再次登录,而是直接进入程序的主界面(仅限于本机).实现这个功能关键就是服务端要识别客户的身份.而用Cookie ...

随机推荐

  1. Checkbox 勾上 不让勾下 同步手动刷新复选框状态 iview

    <Checkbox v-show="!disabledForm" ref="youwubianhuaRef" :value="youwubian ...

  2. HTTP 与 HTTPS 的区别以及 HTTPS 建立连接的过程

    HTTP 与 HTTPS 区别 HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好. 使用 HTTPS 协议需要到 CA(Certifi ...

  3. 3000字编程入门--附带Java学习路线及视频

    Title: 编程入门 GitHub: BenCoper Reference: 尚硅谷-2019 Study: 文字版+视频+实战(第一个自学的网站) Explain: 文末附带Java学习视频以及项 ...

  4. 免注册公众号的三种微信推送消息服务的C#代码实现

    有时候我们需要监控一些网络上的变化,但是每次去刷新网页却又很麻烦,而且大部分刷新的时候网页并没有更新.那么有没有一个工具,可以监控网页变化,并将变化的结果推送到手机微信上呢? 这里有很多应用场景,比如 ...

  5. SpringMvc @Validated注解执行原理

    @Validated和@Valid对比 Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),j ...

  6. CF230B T-primes 题解

    原题链接 简要题意: 判断一个数是否只有 \(3\) 个因数. 首先,如果一个数有奇数个因数,那么这个数是完全平方数. 道理很简单:因数是成对的,那么必然存在 \(k^2 = n\),此时 \(k\) ...

  7. [UWP]使用AlphaMaskEffect提升故障艺术动画的性能(顺便介绍怎么使用性能探测器分析UWP程序)

    前几天发布了抄抄<CSS 故障艺术>的动画这篇文章,在这篇文章里介绍了如何使用Win2D绘制文字然后配合BlendEffect制作故障艺术的动画.本来打算就这样收手不玩这个动画了,但后来又 ...

  8. doc-指令-查看端口是否被占用及占用程序

    来源:http://www.blogjava.net/huozhicheng/archive/2011/09/27/359620.html 1.首先进入命令行 查看端口是否被占用 使用命令: nets ...

  9. swagger2 接口文档

    1,maven: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www. ...

  10. mongodb服务器启动

    以配置文件启动服务器: mongod --config /usr/local/mongodata/config/mongodb.conf(配置文件路径) 客户端启动: mango 关闭mongodb的 ...