我使用https://finance.yahoo.com/quotes/ ...获取股票报价和期权数据。在Safari浏览器中查看时,它继续运行良好。我还将它作为NSURLSession dataTaskWithUrL带入Objective C应用程序。上周(大约2017年4月28日)它开始通过调用willPerformHTTPRedirection强制重定向:但重定向循环到自身并生成“太多HTTP重定向”错误。
有没有人有解决方法?
答案 0 :(得分:0)
这是我最终提出的解决方案:
在原始NSURLRequest中,将其设为NSURLMutableRequest并添加:
[theRequest setValue:@"Mozilla......." forHTTPHeaderField:@"User-Agent"];
这会欺骗浏览器'通常无需重定向。但有时会有重定向。因此我还添加了方法:
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task willPerformHTTPRedirection:(NSHTTPURLResponse *)redirectResponse newRequest:(NSURLRequest *)request completionHandler:(void (^)(NSURLRequest *))completionHandler{
并在完成处理程序中检查task.currentRequest valueForHTTPHeaderField:,将其设置为其他浏览器并使用不同的浏览器生成新的NSURLRequest。它似乎工作。
答案 1 :(得分:-1)
基于其他2个人的工作,我似乎有解决这个问题的方法。实际上,从雅虎下载历史数据的问题有两个方面:
使我能够继续使用Excel电子表格和相关VBA代码的解决方案基于:
Dennis Lee的工作,演示了如何提取饼干/面包屑组合https://github.com/dennislwy/YahooFinanceAPI。
编写VBA-Web的Tim Hall的工作 https://vba-tools.github.io/VBA-Web/docs/#/WebClient/GetFullUrl