2013-10-15 68 views
2

我正在使用C++和OpenCV,我想从密码保护的URL加载图像。 我使用这个使用POCO库的link的想法成功地从URL加载图像,但我不知道当我必须使用用户名和密码才能访问URL时该怎么办。从C++中的URL加载图像

+1

它是HTTP身份验证,还是它是一个Web登录,你必须填写一个表格,并使用Cookie? –

+0

@StevenV这是HTTP认证。 – Smn

+0

如果该库遵循RFC 3986,则显然要尝试使用'http:// username:password @ example.com'。 –

回答

2

我会说什么@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; 
}