在OS X 10.10上使用静态链接的Poco库时出错:不支持HTTP地址系列

时间:2015-04-23 11:03:17

标签: macos poco-libraries

我在OS X 10.10和XCode 6.1.1上使用POCO库1.6.0来构建mac应用程序。

我使用以下配置编译它以进行静态链接:

./configure --omit=Data/ODBC,MonoDB,Data/MySQL,Data/SQLite --config=Darwin64-clang-libc++ --static

这样可以成功编译并生成.a文件。

我已将XCode中的库链接到链接的框架和库下。

该应用成功运行 问题:

然而,在执行Poco :: Net :: HTTPRequest到http://example.org时,它失败并显示错误:不支持Net Exception Address系列。这里也有一个封闭的问题:https://github.com/pocoproject/poco/issues/657

仅当Build Configuration设置为" Debug"而不是"发布"这很奇怪。

以下是代码:

void test(){

Poco::JSON::Object result;
result.set("error", "0");
result.set("errorMessage","");
result.set("response","");
result.set("success", "true");

try {

    Poco::URI uri("http://example.org/?time=12345");
    Poco::Net::HTTPClientSession session(uri.getHost(), uri.getPort());
    Poco::Net::HTTPRequest req(Poco::Net::HTTPRequest::HTTP_GET,uri.getPath(), Poco::Net::HTTPMessage::HTTP_1_1);
    req.set("User-Agent","Chrome/3.2");
    session.sendRequest(req); // sends request, returns open stream
    // Get response
    Poco::Net::HTTPResponse res;

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

    std::string str=std::string((std::istreambuf_iterator<char>(is)),
                                std::istreambuf_iterator<char>());

    std::cout<<str;

} catch (Poco::Exception& e) {

    result.set("error", 103);
    result.set("errorMessage",e.what()+e.message());
    result.set("success", "false");

}
std::ostringstream stream;
result.stringify(stream);
std::string str =  stream.str();

std::cout<<""<<str<<"";
}

0 个答案:

没有答案