我正在用 qt c++ 开发一个应用程序,它从网站下载文件并进行处理。
我在 qt 中使用 libcurl 来下载文件。
我正在使用链接示例下载文件: "http://www.nseindia.com/content/historical/EQUITIES/2014/OCT/cm01OCT2014bhav.dbf.zip "
当我使用浏览器下载此文件时,它会被下载。但是,当我使用 libcurl 下载文件时,我在控制台中得到的回复是 access denied
我尝试使用 libcurl 从同一程序下载一些其他文件,例如 curl libbrary,只是替换了 url,然后它运行良好。 示例:“http://mirrors.kernel.org/sources.redhat.com/cygwin/x86_64/release/curl/curl-7.37.1-1.tar.xz”
在libcurl中有没有什么需要用到的,比如代理之类的? 或者它的服务器功能不允许自动下载?
谢谢。
最佳答案
尝试类似的东西(指定用户代理并重定向到一个文件,这是在你的 linux shell 上)
curl -A "Mozilla/4.0" http://www.nseindia.com/content/historical/EQUITIES/2014/OCT/cm01OCT2014bhav.dbf.zip >yourfile.dbf.zip
编辑: 刚刚意识到您正在通过您的 C++ 代码下载它。 上面的示例表明托管文件的服务器具有基于用户代理的权限。因此,在您的代码中,您需要指定一个类似“Mozilla/4.0”的虚拟用户代理,它应该返回文件的缓冲区。
关于c++ - 使用 libcurl 访问被拒绝下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26142295/