【问题标题】:Is it possible to download files from from file hosting sites using QNetworkAccessManager是否可以使用 QNetworkAccessManager 从文件托管站点下载文件
【发布时间】:2012-09-18 22:45:50
【问题描述】:

我尽我最大的努力从 uploading.com 下载文件,但都是徒劳的。我尝试了所有可能的重定向方式,但都是徒劳的。它总是以错误永久移动而告终,如果您尝试重定向,它最终会下载网页。嗯!

This is the cookie which i have to pass to QNetworkAccessManager:

S=gmail=gPwZoKGL8hgGA4ZHoej_Tg; S=gmail=xrWQCf29oq77myB3uSRKPg;

request.setUrl(url);
          request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
          cookieJar->setCookiesFromUrl(QNetworkCookie::parseCookies(cookie),url);
          manager.setCookieJar(cookieJar);
          reply=manager.get(request);

完成的信号调用下面的槽

int statusCode=0;
            statusCode=reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
           if(statusCode>300)
           {
               if(statusCode==307||reply->rawHeaderList().contains("Location"))
               {
                url=reply->header(QNetworkRequest::LocationHeader).toString();
                request.setUrl(url);
                request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
                cookieJar->setCookiesFromUrl(QNetworkCookie::parseCookies(cookie),url);
                manager.setCookieJar(cookieJar);
                reply=manager.get(request);
                return;
            }

下载失败,因为它下载的是网页而不是文件。 url 和 cookie 由 flashgot 插件、firefox 提供。

【问题讨论】:

    标签: qt network-programming


    【解决方案1】:

    我认为如果“uploading.com”没有自己的原生 API:您将需要从他们的网站解析 html,然后编辑必要的 html,就好像您是他们网页上的用户一样下载文件。

    我需要更多有关您尝试过的内容以及您想做什么来回答这篇文章的信息。您应该首先检查他们是否有自己的 API。使用 Qt 绝对可以做到这一点。

    【讨论】:

    • 您能否提供一些示例代码来更好地解释您收到的问题和错误消息?
    • cookie 似乎有问题。我是否正确传递了 cookie!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多