向DirecTV体育域名发送GET请求超时问题排查与解决
调用DirecTV体育数据接口超时排查求助
不确定该如何准确命名此问题,若标题有误导性敬请谅解,欢迎提出建议。
我对发送POST和GET请求较为陌生。此前开发了一个应用,通过调用https://www.directv.com/sports-info/all/all接口获取联赛、赛事及频道数据,整理为易读的Excel格式。
近期该网站完成更新(路径变更且部分后端请求头修改),导致我的请求失效。更新程序中所有GET/POST请求的路径后,遇到未知问题:即便设置超长超时时间,程序仍会停滞并超时,无法获取响应;甚至使用PuppeteerSharp(.NET环境下的Chrome调试工具)也无法获得稳定响应。
以下是我尝试过但未成功的方法:
- 设置Origin请求头,匹配服务器的
access-control-allow-origin(当前为directv.com和mvp.directv.com,而非此前的*); - 为客户端设置Chrome的UserAgent;
- 从Chrome实例中获取并插入特定Cookie(如XSRF-TOKEN、directv_session、user_id等,通过PuppeteerSharp或手动插入);
- 设置不同时长的超时时间;
- 使用Wireshark抓包,确认未被防火墙拦截(Chrome可正常访问);
- 手动设置
ServerCertificationValidation为true,排除SSL/TLS问题; - 尝试多个端点,如
https://www.directv.com/sports-info/all/all、https://www.directv.com/sports-info/options/leagues、https://directv.com/sports-info/all/custom等; - 向
https://directv.com/sports-info/options/selected发送POST请求以设置位置等参数。
当前使用的代码如下:
var handler = new HttpClientHandler { ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { Console.WriteLine($"Certificate error: {errors}"); return true; // Only for debugging purposes } }; var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(120) }; client.DefaultRequestHeaders.Add("Origin", "https://www.directv.com"); client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"); HttpResponseMessage res_leagues = await client.GetAsync("https://www.directv.com/sports-info/options/leagues");
Postman请求也一直处于「发送请求」状态(截图显示请求长时间无响应)。
更新:
更换多个网络后曾成功获取响应,但约一周后(不确定DirecTV是否有改动),即使换网络也无法再获取响应,不确定是否与客户端缓存有关。
内容的提问来源于stack exchange,提问作者Jamie Head
相关产品推荐
相关产品推荐

