/// <summary> /// /// </summary> /// <param name="proxy"></param> /// <param name="stocks"></param> /// <param name="sectionModels"></param> /// <returns></returns> private List <StorageStockSectionModel> GetStorageStockSectionModels(WebProxy proxy, List <string> stocks, List <SectionModel> sectionModels) { var headers = new WebHeaderCollection(); headers.Add(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); var pr = "http://nufm.dfcfw.com/EM_Finance2014NumericApplication/JS.aspx?"; var urlParam = "cb=jQuery112406821645128125025_1537783921470&type=CT&token=4f1862fc3b5e77c150a2b985b12db0fd&sty=FCOIATC&js=(%7Bdata%3A%5B(x)%5D%2CrecordsFiltered%3A(tot)%7D)&cmd=C.{0}&st=(ChangePercent)&sr=-1&p=1&ps=2000&_=1537783921481"; var regex = new Regex("[{](.*?)[}]{1,}"); List <Tuple <string, string, StockBase> > dic = new List <Tuple <string, string, StockBase> >(); int i = 0; string preUrl = "http://quote.eastmoney.com"; foreach (var item in sectionModels) { string newUrl = pr + string.Format(urlParam, item.Key.Replace("boards-", "").Trim()); var response = HttpHelper.CreateGetHttpResponse(newUrl, 60000, new CustomerHeader(), headers, proxy); var responseString = HttpHelper.GetResponseString(response); var match = regex.Match(responseString); var queryStockDetailResponseModel = JsonHelper.DeserializeJsonToObject <QueryStockDetailResponseModel>(match.Value); var stockDetailModels = DtoHelper.GetStockDetailModel(queryStockDetailResponseModel.Datas); stockDetailModels.ForEach(x => { dic.Add(new Tuple <string, string, StockBase>(item.Title, preUrl + item.Href, x)); }); Messenger.Default.Send(new StatusBarArgs(true, string.Format(ResourceHelper.FindKey("StatusBar_Message_SyncingStockTopicLinkDataProgress"), i, sectionModels.Count)), StatusBarToken.UpdateStatus); Console.WriteLine(i); i++; Thread.Sleep(200); } List <StorageStockSectionModel> models = new List <StorageStockSectionModel>(); stocks.ToList().ForEach(x => { StorageStockSectionModel temp = GetStorageStockSectionModel(dic, x); temp.StockCode = x; temp.StockName = CommonStockDataManager.Instance.GetStockDetailModel(x).Name; models.Add(temp); }); return(models); }
/// <summary> /// 获取实时个股 /// </summary> /// <returns></returns> private List <StockDetailModel> GetDetailModelsFromWebQuery() { var headers = new WebHeaderCollection(); headers.Add(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9"); WebProxy proxy = null; if (_configModel.IsUseProxy) { proxy = new WebProxy(_configModel?.ProxyData?.IP, _configModel.ProxyData.Port); } var response = HttpHelper.CreateGetHttpResponse(_url, 10000, new CustomerHeader(), headers, proxy); var responseString = HttpHelper.GetResponseString(response); var regex = new Regex("[{](.*?)[}]{1,}"); //get json string var match = regex.Match(responseString); var queryStockDetailResponseModel = JsonHelper.DeserializeJsonToObject <QueryStockDetailResponseModel>(match.Value); var datas = DtoHelper.GetStockDetailModel(queryStockDetailResponseModel.Datas); return(datas); }