3

私はポコに奇妙な問題を抱えています。問題なくビルドでき、テスト アプリケーションにリンクできます。ただし、URL をダウンロードすると、どの URL を使用しても HostNotFound 例外が報告されます。このファイルはどこからでもシークレットブラウザでアクセスでき、DNSで解決できます....これをトラブルシューティングするのに少し困っています...何かアイデアはありますか?

// エラー nslookup を示すマシンの dns s3.amazonaws.com Server: UnKnown Address: 192.168.0.1

正式でない回答: 名前: s3-1.amazonaws.com 住所: 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>");

}
4

2 に答える 2

5

ちょうど同様の問題がありました。ホスト名は"http://s3.amazonaws.com".

ホストの実際の名前は です"s3.amazonaws.com"。この"http://"部分はプロトコルを指定します。とにかく、クラスHTTPClientSessionは http プロトコルにのみ使用されます。

私の場合、を取り除い"http://"て実際のホスト名を使用するだけで正しく機能しました: "s3.amazonaws.com":

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

(まあ、私の場合は でしたが"http://ws.audioscrobbler.com"、それは重要ではありません)。これが本当にあなたの問題に対する答えであるかどうかを知るにはおそらく遅すぎます. エラーは私のものとは少し異なって見えます.

于 2016-02-28T10:06:07.220 に答える
-1

poco net ライブラリを再構築しましたが、同じエラーが発生しました。

非常に単純なことで時間を無駄にするのを避けるために、CHttpConnection を使用するように切り替えました (これにより、約 20MB のライブラリ要件も節約されました)。

おそらく、経験豊富な poco 開発者がより良いアイデアを思い付くでしょう。

于 2013-11-04T21:38:50.997 に答える