diff --git a/客户端/齐越慧眼/齐越慧眼/ApiHelper.cs b/客户端/齐越慧眼/齐越慧眼/ApiHelper.cs index 00bf166..584a2dd 100644 --- a/客户端/齐越慧眼/齐越慧眼/ApiHelper.cs +++ b/客户端/齐越慧眼/齐越慧眼/ApiHelper.cs @@ -31,6 +31,10 @@ namespace 齐越慧眼 { #if LOCATION + + https://item.taobao.com/item.htm?id=676752909206 //小一 + return "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNDA1MTUxNjE5NTk0NTg4MTYwIiwidGVhbUlkIjoiMTUxNjk3NDI1MDU0MjUwMTg4OCIsInNvblRlYW1JZHMiOiIxNTE2OTc0MjUwNTQyNTAxODg4LDE0MzA0NzE3NDA0NDU2OTE5MDQsMTYyMDM0MzgyNzQ3MjU4NDcwNCIsImV4cCI6MTcwOTQzMDc5MH0.L4F0c7Mx_AbXjiazGmcFDQxVAYwKen91oTS7pZYtqkQ"; + //return "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNDM5OTA5MzA3MDA4MTU5NzQ0IiwidGVhbUlkIjoiMTQzOTg5ODUxNDIyMDkxMjY0MCIsInNvblRlYW1JZHMiOiIiLCJleHAiOjE3MDgzMzM1NDF9.6WCMQzB8iRtYsOZl88YPJrmZVYuuvboO4R8dAQHdLuE"; //测试001 return "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMzk1NzAwMDEzMTg2NjgyODgwIiwidGVhbUlkIjoiMTU0NzM5OTExMTU1NTE1ODAxNiIsInNvblRlYW1JZHMiOiIxNjIwMzQzODI3NDcyNTg0NzA0IiwiZXhwIjoxNzA3ODExMjQxfQ.Vw_BhiUJnT_Sxm7QzbD2-lSguQI_pA9BDbTcQQ-sfQo"; @@ -346,11 +350,16 @@ namespace 齐越慧眼 { HttpClient http = new HttpClient(); http.DefaultRequestHeaders.Add("Cookie", App.JdCookie); + http.DefaultRequestHeaders.Add("referer", "https://item.jd.com/"); http.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0"); - html = http.GetStringAsync($"https://item-soa.jd.com/getWareBusiness?skuId={skuId}").Result; + string url = $"https://api.m.jd.com/api?appid=pc-item-soa&functionId=pc_detailpage_wareBusiness&client=pc&clientVersion=1.0.0&loginType=3&body=%7B%22skuId%22%3A%20%22{skuId}%22%2C%22num%22%3A%201%7D&jsonp=jQuery9509423&_=1678871818560"; + html = http.GetStringAsync(url).Result; if (!string.IsNullOrEmpty(html)) { + html = html.Trim().Replace("jQuery9509423(", ""); + html = html.Remove(html.Length - 2, 2); + var data = Newtonsoft.Json.JsonConvert.DeserializeObject(html); string price = data.price.p.ToString(); @@ -363,6 +372,11 @@ namespace 齐越慧眼 } catch (Exception ex) { + if (ex.Message.Contains("403")) + { + return ("noLogin", null); + } + WpfNoticeMsg.NoticeMessage.Show("获取商品价格信息出错:"+ex.Message+"\r\n"+ html); return (string.Empty, string.Empty); } diff --git a/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs b/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs index d115c21..ad8bea0 100644 --- a/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs +++ b/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs @@ -1,4 +1,5 @@ using CefSharp; +using CefSharp.DevTools.Runtime; using CefSharp.Wpf; using System; using System.Collections.Generic; @@ -36,7 +37,7 @@ namespace 齐越慧眼.UserControls InitializeComponent(); - if (url.Contains("ltype=logout&ReturnUrl=https://home.jd.com")) + if (url.Contains("ltype=logout&ReturnUrl=https:/")) { IsJustLoginJd = true; } @@ -102,8 +103,9 @@ namespace 齐越慧眼.UserControls private void Visitor_SendCookie(Cookie obj) { - string cookies = obj.Name + "=" + obj.Value + ";"; - App.JdCookie += cookies; + //string cookies = obj.Name + "=" + obj.Value + ";"; + + } private void Web_AddressChanged(object sender, DependencyPropertyChangedEventArgs e) @@ -117,7 +119,7 @@ namespace 齐越慧眼.UserControls if (IsJustLoginJd) { - if (e.NewValue.ToString().StartsWith("https://home.jd.com")) + if (e.NewValue.ToString().StartsWith("https://home.jd.com")||e.NewValue.ToString().StartsWith("https://item.jd.com")) { CookieVisitor visitor = new CookieVisitor(); visitor.SendCookie += Visitor_SendCookie; @@ -132,6 +134,11 @@ namespace 齐越慧眼.UserControls { Thread.Sleep(5000); + var task = DoJavaScript("return document.cookie"); + var result2 = task.result; + + App.JdCookie = result2.ToString(); + using (HttpClient http = new HttpClient()) { http.DefaultRequestHeaders.Add("Cookie", App.JdCookie); diff --git a/客户端/齐越慧眼/齐越慧眼/UserControls/ItemControl.xaml.cs b/客户端/齐越慧眼/齐越慧眼/UserControls/ItemControl.xaml.cs index c95e87c..7602cb2 100644 --- a/客户端/齐越慧眼/齐越慧眼/UserControls/ItemControl.xaml.cs +++ b/客户端/齐越慧眼/齐越慧眼/UserControls/ItemControl.xaml.cs @@ -1,5 +1,6 @@ using CefSharp; using CefSharp.Wpf; +using HandyControl.Expression.Shapes; using System; using System.Collections.Generic; using System.Drawing; @@ -119,7 +120,19 @@ namespace 齐越慧眼.UserControls { // https://item.jd.com/10030884795783.html - var match= Regex.Match(url, "jd.com/(.*?).html"); + + if (string.IsNullOrEmpty(App.JdCookie)) + { + Application.Current.Dispatcher.Invoke(() => + { + BrowerTabPanelControl.Main.NewTab("https://passport.jd.com/uc/login?ltype=logout&ReturnUrl=https://item.jd.com/10067296719254.html"); + MainWindow.Main.tab.SelectedIndex = 2; + }); + + return "{msg:'未登录京东,请先登录!',success:false}"; + } + + var match= Regex.Match(url, "jd.com/(.*?).html"); if (!match.Success) { @@ -143,6 +156,11 @@ namespace 齐越慧眼.UserControls var data= ApiHelper.GetItemPrice(itemId); + if (data.price == "noLogin") + { + return "{msg:'未登录京东,请先登录!',success:false}"; + } + string price = data.price; string comment = data.commont;