使用QnetworkAcessManager下载直接链接的文件

download a file by a direct link using QNetworkAcessManager

本文关键字:链接 文件 QnetworkAcessManager 下载 使用      更新时间:2023-10-16

我正在使用qnetworkacessmanager从直接链接下载pdf文件。但是它什么也没下载,QByTearray的大小为0,我在MP3文件的另一个链接上尝试了它,而且它可以正常工作,但我想知道为什么不能下载此链接,我尝试使用curl下载它和同样的问题所以我尝试在Java中这样做,但它给了我一个错误

 Exception in thread "main" java.net.MalformedURLException: no protocol: www.proz.com/ht/profile_resources/022198_r4551c465d7a53.doc

当我搜索此错误时,求解是为了编码它,因此我再次返回并在QT中进行,然后使用此

编码URL
//using QUrl To endcode the link
reply = manager->get(QNetworkRequest(QUrl(QUrl(Link).toEncoded())));
connect(reply, SIGNAL(readyRead()), this, SLOT(CollectFile()));
connect(reply, SIGNAL(finished()), this, SLOT(DocDownloaded()));

,但是编码后的Java和Qt都有同样的问题,因此该问题是什么问题,以及为什么使用QnetworkAcsesmanager下载任何解决方案或使用卷发

更新我要下载的文件的URL

http://www.proz.com/ht/profile_resources/009424_r57075c01ae812.pdf

预先感谢

您是否尝试构造qnetworkrequest as:

 QNetworkRequest(QUrl(Link))

没有" toencoded"?

在此处举例说,您需要使用QURL ::从编码URL进行cancruct qurl,或者简单地跳过所有操作。

我解决了问题当我从普通Web浏览器Firefox下载文件或任何使用Internet Download Manager应用程序时,我可以通过解决该文件进行解决。链接是更改
来自:

http://www.proz.com/ht/profile_resources/009424_r57075c01ae812.pdf

to:

http://cdn3.proz.com/profile_resources/009424_r57075c01ae812.pdf

因此,当我复制第二个链接时,它可以立即从我的应用程序中下载或使用卷曲,但不知道对此的解释,因此,如果有人可以帮助并解释这是为什么会发生的,并且当我放置时,链接会更改在Internet下载管理器中,给我新的链接,我将不胜感激
这是我解决问题的方式,但没有解释为什么发生这种情况