public virtual DataResponse SendHandler(DataRequest dr) { //TODO [待完善]仅作临时使用, 目前仅支持DataRequest的GET请求 Trace.WriteLine($"HTTP GET {dr.Url}"); var resp = Http.SafeGet(dr.Url); return new DataResponse(dr.GUID, resp.Text, resp.StatusCode); }
/// <summary> /// 异步地将数据请求加入请求队列 /// </summary> /// <param name="dr"></param> /// <returns></returns> public async Task<bool> AddAsync(DataRequest dr) { var bloomFilter = Magnesium.Current.BloomFilter; //检查布隆过滤器中是否有对应的URL if (dr.IsUseFilter && !bloomFilter.Contains(dr.Url)) { if (await Magnesium.Current.PostAsync(dr)) { bloomFilter.Add(dr.Url); return true; } return false; } return false; }
/// <summary> /// 将数据请求加入请求队列 /// </summary> /// <param name="dr"></param> /// <returns>如果成功添加到请求队列中则返回true,否则返回false</returns> public bool Add(DataRequest dr) { var bloomFilter = Magnesium.Current.BloomFilter; //检查布隆过滤器中是否有对应的URL if (dr.IsUseFilter && !bloomFilter.Contains(dr.Url)) { if (Magnesium.Current.Post(dr)) { bloomFilter.Add(dr.Url); return true; } return false; } return false; }
internal async Task<bool> PostAsync(DataRequest dr) { _requestCount += 1; return await _requestQueue.SendAsync(dr); }
internal bool Post(DataRequest dr) { _requestCount += 1; return _requestQueue.Post(dr); }
/// <summary> /// 请求队列处理程序 /// </summary> /// <param name="dr"></param> /// <param name="parseQueue"></param> public void RequestHandler(DataRequest dr, ActionBlock<DataResponse> parseQueue) { //TODO [待完善]异常处理 var dcp = _dcpList[dr.GUID]; var dresp = dcp.SendHandler(dr); parseQueue.Post(dresp); }
public override DataResponse SendHandler(DataRequest dr) { var xmr = (XMusicRequest)dr; var resp = Http.Get(dr.Url); return new XMusicResponse(dr.GUID, resp.Text, resp.StatusCode, xmr.ID); }
internal async Task <bool> PostAsync(DataRequest dr) { _requestCount += 1; return(await _requestQueue.SendAsync(dr)); }
internal bool Post(DataRequest dr) { _requestCount += 1; return(_requestQueue.Post(dr)); }