Загрузить изображение из URL-адреса в С++

Я использую C++ и OpenCV, и я хотел бы загрузить изображение с защищенного паролем URL-адреса. Мне удалось загрузить изображение с URL-адреса, используя идею этого ссылка, которая использует библиотеку POCO, но я не знаю, что мне делать, когда мне нужно использовать имя пользователя и пароль для доступа к URL-адресу.


person Smn    schedule 15.10.2013    source источник
comment
Это HTTP-аутентификация или веб-логин, где вам нужно заполнить форму и использовать файлы cookie?   -  person Steven V    schedule 15.10.2013
comment
@StevenV Это HTTP-аутентификация.   -  person Smn    schedule 15.10.2013
comment
Если библиотека соответствует RFC 3986, очевидно, что стоит попробовать http://username:[email protected].   -  person Steven V    schedule 15.10.2013


Ответы (1)


Я бы сказал, сделайте то, что сказал @StevenV, и попробуйте закодировать учетные данные в URI.

Если это не сработает или вы не хотите использовать этот метод, вы должны вместо этого использовать класс POCO HTTPClientSession. Что-то вроде этого:

URI uri(url);
HTTPClientSession session(uri.getHost(), uri.getPort());
HTTPRequest req(HTTPRequest::HTTP_GET, uri.getPathEtc(), HTTPMessage::HTTP_1_1);
HTTPBasicCredentials creds("username","password");
creds.authenticate(req);
session.sendRequest(req);
HttpResponse resp;
std::istream file = session.reveiveResponse(resp);
if(resp.getStatus() == HTTP_OK){
  //copy image from istream file here;
}
person PeterT    schedule 15.10.2013