2013-11-04 65 views
1

我遇到了一個與poco有關的奇怪問題。我可以很好地構建它,並將其鏈接到測試應用程序。但是,當我下載一個url時,無論我使用哪個url,都會報告一個HostNotFound異常。該文件可以在無處不在的瀏覽器中訪問,並可以在dns中解決....我在解決這個問題時有點不知所措嗎?有什麼想法?未知 地址:192.168.0.1poco httpclientsession即使主機已解決但仍未找到主機錯誤

非權威的答案: 名稱:s3-1.amazonaws.com 地址顯示錯誤 NSLOOKUP s3.amazonaws.com 服務器的機器上

// DNS :72.21.215.196 別名:s3.amazonaws.com s3.a-geo.amazonaws.com

// calling helper 
CString host("http://s3.amazonaws.com"); 
CString path("/mybucket.mycompany.com/myfile.txt"); 
CString errmsg; 
CString data = GetURL(host,path,errmsg); 

    // poco helper code 
CString GetURL(CString host, CString path_query, CString &debmsg) 
{ 

    debmsg = CString(""); 
    try 
    { 
     // convert request 
     std::string tmphost((LPCTSTR)host); 
     std::string tmppath((LPCTSTR)path_query); 
     // creation session and request 
     HTTPClientSession session(tmphost,80); 
     // disable proxy 
     session.setProxyHost(""); 
     HTTPRequest req(HTTPRequest::HTTP_GET,tmppath,HTTPMessage::HTTP_1_1); 

     // send request 
     session.sendRequest(req); 
     // get response 
     HTTPResponse res; 

     std::istream * response = &session.receiveResponse(res); 

     // convert it back to mfc string 
     streambuf *pbuf = response->rdbuf(); 
     std::ostringstream ss; 
     ss << pbuf; 

     CString data(ss.str().c_str()); 

     return data; 
    } 
    catch (Poco::Exception& ex) 
    { 
     CString err(ex.displayText().c_str()); 
     debmsg.Format("error getting url: %s%s err: %s",host,path_query,err); 
    } 

    return CString("<error>"); 

} 
+0

我有這個問題。遠程端口未打開。如果我的情況,HTTP 80沒有打開,我認爲我打開HTTPS 443,但是我的應用程序邏輯中的一個錯誤是將它指向80。 – Homer6

回答

0

重建POCO網庫,仍然得到了同樣的錯誤。

爲了避免浪費時間,使用CHttpConnection(這也節省了大約20MB的庫需求)。

也許有經驗的poco開發人員會想出一個更好的主意。

4

剛剛有類似的問題。請注意您的主機名是"http://s3.amazonaws.com"

主機的實際名稱是"s3.amazonaws.com""http://"部分指定協議。無論如何,類HTTPClientSession只能用於http協議。

在我的情況下,剝離的"http://",只是使用實際的主機名工作正常:"s3.amazonaws.com"

HTTPClientSession session("s3.amazonaws.com"); 

(好吧,在我的情況下,它是"http://ws.audioscrobbler.com",但這是題外話)。可能來不及發現這是否真的是你問題的答案,這個錯誤確實與我的看法有點不同,但希望它能幫助像我一樣通過搜索到達這裏的人。