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>");
}
이 문제가 발생했습니다. 원격 포트가 열려 있지 않습니다. 제 경우 인 HTTP 80이 열려 있지 않았고 HTTPS 443을 열어 보았습니다.하지만 응용 프로그램 논리의 버그로 인해 80으로 향하게되었습니다. – Homer6