Скачать файл по прямой ссылке, используя QNetworkAcessManager

Я использую 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 после кодирования, так что стоит за этой проблемой и почему она не загружает какое-либо решение, используя QNetworkacessManager или Curl
Обновите URL файла, который я хочу скачать

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

Заранее спасибо

2 ответа

Я решаю проблему, но, поскольку у меня есть небольшой опыт в веб-разработке, я не знаю, почему это произошло
Я решаю это, когда я загружаю файл из обычного веб-браузера Firefox или любого другого или с помощью приложения управления загрузкой через Интернет, ссылка меняется
от:

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

к:

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

поэтому, когда я копирую вторую ссылку, ее можно скачать прямо сейчас из моего приложения или с помощью Curl, но я не знаю объяснения этому, так что если кто-то может помочь и объяснить это, почему это произошло, и ссылка изменится, когда я добавлю ее в Интернет. менеджер и дай мне новую ссылку, я буду признателен
вот как я решаю проблему, но без объяснения причин, почему это произошло

Вы пытались построить QNetworkRequest как:

 QNetworkRequest(QUrl(Link))

без 'toEncoded'?

В соответствии с приведенным здесь примером, вам нужно использовать QUrl::fromEncoded, чтобы собрать QUrl из закодированного URL, или просто пропустить все манипуляции.

Другие вопросы по тегам