| | |
| | | var filteredParameters = parameters.Where(p => p.Key != "RequestTime"&& p.Key != "SessionId").ToDictionary(p => p.Key, p => p.Value); |
| | | |
| | | string requestKey = $"{url}:{JsonConvert.SerializeObject(filteredParameters)}"; |
| | | // 检查请求次数和时间限制 |
| | | // 检查请求次数和时间限制 |
| | | if (requestTracker.TryGetValue(requestKey, out var requestInfo)) |
| | | { |
| | | if (requestInfo.Count >= 5 && DateTime.Now < requestInfo.LastRequestTime.AddMinutes(10)) |
| | | { |
| | | // 如果请求次数超过限制且未超过10分钟,抛出异常 |
| | | throw new InvalidOperationException("请求次数已达到限制,请稍后再试。"); |
| | | Console.WriteLine("请求次数已达到限制,请稍后再试。"); |
| | | Console.WriteLine($"接口地址:{url}"); |
| | | Console.WriteLine($"请求数据:{JsonConvert.SerializeObject(filteredParameters, Formatting.Indented)}"); |
| | | throw new Exception($"接口地址:{url}---请求次数已达到限制,请稍后再试。"); |
| | | } |
| | | } |
| | | |