Я хочу вызвать Microsoft Vision API из C ++, и я использую библиотека cpr делать запросы. Теперь я запускаю следующий код:
#include <iostream>
#include <cpr/cpr.h>
#include <json.hpp>
int main(int argc, char** argv) {
auto response = cpr::Post(
cpr::Url{"https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/analyze"},
cpr::Body{{"url","https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Broadway_and_Times_Square_by_night.jpg/450px-Broadway_and_Times_Square_by_night.jpg"}},
cpr::Header{{"Ocp-Apim-Subscription-Key", "xxxxxxxx"}}
);
std::cout << response.status_code ;
auto json = nlohmann::json::parse(response.text);
std::cout << json.dump(4) << std::endl;
}
Хотя код выполняется cmake
, так make
Был успешен. Но когда я выполнил исполняемый файл, появилась следующая ошибка:
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_M_create
Aborted (core dumped)
PS: документацию по Microsoft Vision API можно найти Вот
Итак, скажите мне, если я делаю какую-то ошибку. Также, если кто-то знает, как отправлять http-запросы в приложении QtQuick, скажите, пожалуйста,
Вы можете попробовать это?
auto my_json = nlohmann::json::object({
{ "url","https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Broadway_and_Times_Square_by_night.jpg/450px-Broadway_and_Times_Square_by_night.jpg" }
});
response = cpr::Post(
cpr::Url{"https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/analyze"},
cpr::Body{ my_json.dump() },
cpr::Header{{"Ocp-Apim-Subscription-Key", "XXXXXX"}}
);
Других решений пока нет …