使用RestSharp请求实时股票数据时遇403 Forbidden错误求解决
解决RestSharp请求Polygon API返回403 Forbidden错误的方案
核心排查与解决步骤
1. 验证API密钥有效性
- 确保代码中
<_API_Key_>已替换为从Polygon平台获取的有效密钥,免费版密钥需完成邮箱验证才能启用。 - 检查密钥是否超出请求配额:Polygon免费版有请求次数限制(如每分钟5次、每天500次),超出后会返回403。
2. 修正RestSharp请求写法
直接拼接URL可能引发编码或格式问题,改用RestSharp的参数传递方式更可靠:
public async void stockData(object sender, RoutedEventArgs e) { if(string.IsNullOrWhiteSpace(_symbol)) { f.Content = "请输入有效的股票代码"; return; } var client = new RestClient("https://api.polygon.io"); var request = new RestRequest($"v2/last/nbbo/{_symbol.ToUpper()}"); // 用AddParameter传递API密钥,避免URL拼接问题 request.AddParameter("apiKey", "你的实际API密钥"); try { var response = await client.GetAsync(request); if(response.IsSuccessful) { f.Content = response.Content; } else { f.Content = $"请求失败:{response.StatusCode} - {response.ErrorMessage}"; } } catch(Exception ex) { f.Content = $"请求异常:{ex.Message}"; } }
- 移除不必要的
request.RequestFormat = DataFormat.Json:GET请求无需设置请求体格式。
3. 增加输入合法性校验
用户输入空字符串或无效代码时,请求也可能返回错误,提前拦截:
if(string.IsNullOrWhiteSpace(_symbol)) { f.Content = "请输入有效的股票代码"; return; }
4. 确认API端点权限
检查Polygon的定价规则:免费版可能无法访问v2/last/nbbo这类实时数据端点,需确认你的密钥层级是否支持该接口。
内容的提问来源于stack exchange,提问作者jv1597
相关产品推荐
相关产品推荐

