cpp-netlib重定向后获取雅虎财经内容失败

cpp-netlib fetch Yahoo-Finance content failed after redirect

本文关键字:失败 雅虎 重定向 获取 cpp-netlib      更新时间:2023-10-16

我试图从雅虎财经网站检索数据。但是对于cpp-netlib,它不能工作,对于普通的浏览器,没有问题。

 using namespace boost::network;
 http::client::options options;
 options.follow_redirects(true);
 http::client client(options);
 std::string uri    = "http://finance.yahoo.com/d/quotes.csv?s=ADS.DE&f=n";
 try
    {
     http::client::request request( uri );
     http::client::response response = client.get(request);
     std::string result =body( response );
     std::cout << result << std::endl;
    }
   catch (boost::system::system_error const& e)
    {
     cout << "Warning: could not connect : " << e.what() << std::endl;
    }

我认为问题是重定向。错误信息看起来像:

<HTML>
<HEAD>
<TITLE>Error</TITLE>
</HEAD>
<BODY BGCOLOR="white" FGCOLOR="black">
<!-- status code : 301 -->
<!-- Error: GET -->
<!-- host machine: yts282.global.media.ir2.yahoo.com -->
<!-- timestamp: 1408186488.000 -->
<!-- url: http://finance.yahoo.com/d/quotes.csv?s=ADS.DE&f=n-->
<H1>Error</H1>
<HR>
<<p> 解决方案/strong>

将请求的url更改为http://download.finance.yahoo.com/d/quotes.csv?s=ADS.DE&f=n

我将请求的url更改为http://download.finance.yahoo.com/d/quotes.csv?s=ADS.DE&f=n