【问题标题】:How to make asynchronous HTTP request with pion?如何使用 pion 发出异步 HTTP 请求?
【发布时间】:2015-07-03 19:10:26
【问题描述】:

类似于this question,但我想使用Pion进行异步通信。

我想我已经弄清楚了如何异步创建连接:

pion::tcp::connection_ptr connection(new pion::tcp::connection(_io_service));
connection->async_connect(ep,
                          boost::bind(&http_client::after_connect,
                                      this,
                                      connection,
                                      _1));

现在我想使用pion::http::request 发送一个请求,但是它的所有发送方法都被阻塞了。如何异步发送?

【问题讨论】:

  • 好吧。请求有多大?因为通常请求足够小,您可以在缓冲区中构建它们然后发送它们(异步)。除非你当然想做大上传/长轮询等。你能展示你正在尝试做什么以及你卡在哪里的 SSCCE 吗?

标签: c++ http asynchronous boost-asio pion-net


【解决方案1】:

Pion 中有一个request_writer 类。我记得它有一个send() 成员函数来异步发送数据。

// create
auto writer = pion::http::request_writer::create(connection);

// set data
writer->write(11);
writer->write(some_buffer, bufer_size);

// send data
writer->send();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2011-01-08
    • 2016-11-15
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多