日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA 淘宝扫码登陆以及下单流程

發布時間:2023/12/8 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA 淘宝扫码登陆以及下单流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

所用API 并非官方API 自己提取 ,掃碼登陸、加載商品、立即購買 3個API 都調試通過,提交訂單API 一直提示

無法購買,文章的目的 供大家一起探討學習 集思廣益,因為該代碼目前處于調試階段,沒有整理和提取方法 所以寫的有

點亂 勿噴 ,有錯誤的地方希望大家提出。進入正題

1. 采用HttpCilent 模擬http請求,jsoup 解析Html ,Gson 處理json 后續附上相應的jar包

2.登陸API

// 全局請求設置RequestConfig globalConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD).build();// 創建cookie store的本地實例CookieStore cookieStore = new BasicCookieStore();CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(globalConfig).setDefaultCookieStore(cookieStore).build(); //請求掃碼登陸String smUrl = "https://qrlogin.taobao.com/qrcodelogin/generateQRCode4Login.do?from=tmall&appkey=00000000";//掃碼登陸參數String _ksTS = String.valueOf(System.currentTimeMillis()) + "_" + (int) (Math.random() * 90 + 10);smUrl = smUrl + "&_ksTS=" + _ksTS;//get請求掃碼登陸String url = null, lgToken = null;try {HttpGet httpGet = new HttpGet(smUrl);HttpResponse response = httpClient.execute(httpGet);for(Header header : httpGet.getAllHeaders()){System.out.println("登陸Headers:" + header.getName() +":" +header.getValue() );}HttpEntity entity = response.getEntity();String rs = EntityUtils.toString(entity, "UTF-8");JsonObject returnData = new JsonParser().parse(rs).getAsJsonObject();System.out.println("get掃碼請求結果" + returnData);Boolean success = returnData.get("success").getAsBoolean();if (success) {url = returnData.get("url").getAsString();lgToken = returnData.get("lgToken").getAsString();System.out.println("url: " + url);} else {throw new Exception("請求掃碼登陸異常:" + returnData.get("message").getAsString());}} catch (Exception e) {e.printStackTrace();} //此處 等待用戶掃碼。。。//輪訓 獲取掃碼結果String smRsUrl = "https://qrlogin.taobao.com/qrcodelogin/qrcodeLoginCheck.do?";//獲取結果參數smRsUrl = smRsUrl + "lgToken=" + lgToken + "&defaulturl=https://www.tmall.com" + "&_ksTS" + _ksTS;//get請求掃碼結果String loginUrl = null;try {HttpGet httpGet = new HttpGet(smRsUrl);while (true) {HttpResponse response = httpClient.execute(httpGet);HttpEntity entity = response.getEntity();String rs = EntityUtils.toString(entity, "UTF-8");JsonObject returnData = new JsonParser().parse(rs).getAsJsonObject();System.out.println("get掃碼RS請求結果" + returnData);Boolean success = returnData.get("success").getAsBoolean();if (success) {String rsCode = returnData.get("code").getAsString();if (rsCode.equals("10006")) {//掃碼完成loginUrl = returnData.get("url").getAsString();break;}} else {throw new Exception("獲取掃碼結果異常:" + returnData.get("message").getAsString());}//2s 等待用戶輸入Thread.sleep(2000);}} catch (Exception e) {e.printStackTrace();} //post 請求loginUrltry {HttpPost httpPost = new HttpPost(loginUrl);HttpResponse response = httpClient.execute(httpPost);if (response != null) {//HttpEntity resEntity = response.getEntity();if (response.getStatusLine().getStatusCode() == 302) {//重定向 登陸String location = response.getFirstHeader("Location").getValue();System.out.println("重定向URl:" + location);//此處才算真正登陸HttpGet httpGet = new HttpGet(location);HttpResponse responseLogin = httpClient.execute(httpGet);HttpEntity resEntityLogin = responseLogin.getEntity();String rs = EntityUtils.toString(resEntityLogin, "UTF-8");//todo 此處可以 去請求個人中心等頁面校驗是否登陸成功//System.out.println("登陸后結果:" +rs);}}} catch (Exception e) {e.printStackTrace();}




加載商品 立即購買 下單 等接口 看大家是否有意向,可在評論區回復,視情況 再開一個帖子

jar包https://pan.baidu.com/s/1qZS4hCK? 提取碼?psnw







總結

以上是生活随笔為你收集整理的JAVA 淘宝扫码登陆以及下单流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。