我正在使用boost :: asio向Facebook发出异步http请求(主要是将客户端令牌交换为可以进行API调用的客户端令牌)。大部分时间它工作正常,几乎立即返回数据。
但有时它会在返回之前在连接过程中挂起3或4秒(请记住这是SSL)。其他时候甚至会出现“拒绝连接”错误。这是每次传递相同的数据(我自己的facebook令牌用于本地测试)。
我不确定我是否搞砸了(我的代码几乎与boost网站上的示例完全相同)或者这是因为Facebook。 Facebook服务器挂起连接到它可能超时的位置是否常见?
我的连接代码如下所示:
m_sslSocket.set_verify_mode(boost::asio::ssl::verify_peer);
m_sslSocket.set_verify_callback(boost::asio::ssl::rfc2818_verification(a_server));
boost::asio::async_connect(m_sslSocket.lowest_layer(), a_endpointIterator, boost::bind(&BoostHttpRequest::HandleConnect, this, boost::asio::placeholders::error));
考虑到它大部分时间都有效,并且它挂在连接上我会猜测这是Facebook的问题,而不是代码。任何使用Facebook API调用的人都可以投入两美分?