МихаилллМамыр 31, 2019, 11:01 Т.Ж.
В Qt трудности с API
Добрый день.
Пытаюсь подключиться по
этой документации.
Если делаю так
request.setUrl(QUrl("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=MSFT&outputsize=compact&apikey=63YUZ8NP5SW1D300"));
то получаю json. А если делаю так:
request.setUrl(QUrl("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=MSFT&outputsize=full&apikey=63YUZ8NP5SW1D300"));
то ничего не получаю.
Разница в outputsize=full и outputsize=compact
Это у меня в коде касяк , или я что то не понимаю , или это на сервере касяк?
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
Г
- Геній
- Қыр. 13, 2024, 12:46 Т.Қ.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:66ұпай,
- Бағалау ұпайлары-1
t
- torgaev_2024
- Қыр. 8, 2024, 6:20 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:33ұпай,
- Бағалау ұпайлары-10
Соңғы пікірлер
Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
ВР
Linux жүйесінде файлдарды қалай көшіруге болады Screenshot_20240802-065123.png
Влад РусоковТам. 2, 2024, 1:47 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
Енді форумда талқылаңыз
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
BlinCTМаусым 25, 2024, 1 Т.Ж.
BlinCTМамыр 5, 2024, 5:46 Т.Ж.
Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
Добрый день.
Через браузер API работает. Может там перенаправление есть, тогда нужно разрешить перенаправления для получения данных. По умолчанию QNetworkAccessManager игнорит перенаправления.
Тут почитал, нашел только QNetworkAccessManager::NetworkAccessibility и QNetworkAccessManager::Operation, но это явно не то. Скажите пожалуста как разрешить перенаправления?
Когда формируете QNetworkRequest, то ему можно задать некоторые атрибуты, а также заголовочную информацию.
Для редиректов это может выглядеть так.
Не помогло. Говорят что это на MacOS работает... Можеь быть дело в размере json
Не знаю, что в размере json, но установка атрибутов через setAttribute работает везде. Тем более для редиректа. В этом я уверен.
НЕ могли бы вы проверить, заработает ли у вас этот запрос и прийдет ли json
alphaVantageApiStocks.rar
build-alphaVantageApiStocks-Desktop_Qt_5_12_3_MinGW_32_bit-Debug.rar
Да, это проблема с размером JSON. Это проблема Windows, конкретно под Windows метод readAll не работает с очень большими массивами данных. Нужно использовать readLine.
Я поправил ваш код следующим образом.
Заголовочный файл
Файл реализации
Это проблема конкретно метода readAll Поэтому вы можете считать построчно всё в QByteArray, а потом уже конвертировать в QJsonDocument из него. При этом, если количество данных будет очень большое, то всё равно будут проблемы с выводом в qDebug. Так что используйте запрос на outputsize=compact . С full у меня не получилось вывести данные в qDebug.
Спасибо, записал так в файл и все заработало.
А админы на форуме Qt не догадались в чем дело.
Я уже сталкивался с этой проблемой. Эта проблема общая для всех классов, наследованных от QIODevice . Тоже самое проявляется с QFile и т.д. Причём проявляется именно под Windows.
А почему так? Ведь мощности компа хватает для хранения этой информации в оперативной памяти, или тут упирается в кэш процесора?
Понятия не имею. Мне это не было интересно, может быть баг. Но то, что запихать многогигабайтные файлы в память просто так не получится, то это факт. Может быть под Windows есть ограничения. Кто знает? ...