c++ - 异步 Wt::Http::Client 响应和请求匹配

标签 c++ http asynchronous client wt

我是 Wt3(版本 3.3.9 - 因为 wole 项目正在使用它)的新手。我遇到了一个问题,现在正在寻找解决方案。

我想做一个多线程Wt::Http::Client。从文档中我了解到,使用 Wt::WIOService 和设置的线程数可以做到这一点,但我面临着识别哪个请求与处理的响应匹配的问题

使用 Wt::WIOService 的多线程。

  Wt::WIOService io_service;
  io_service.setThreadCount(10);
  io_service.start();
  //
  MyClass my_http_client(io_service);
  my_http_client.Work();
  //
  io_service.stop();

在 Work() 中有一个循环读取请求队列并发送它们。

对于单线程,我使用了下一段代码:

在从 Wt::Http::Client 扩展的类构造函数中:

  done().connect(boost::bind(&MyClass::HandleHttpResponse, this, _1, _2));

处理方法:

void MyClass::HandleHttpResponse(boost::system::error_code err, const Wt::Http::Message response) {
  std::unique_lock<std::mutex> lock(mutex_);
  // response to inner format
  // then all data goes to another class.
}

但是当我使用多线程时我需要将请求与响应完全匹配。我对 Wt documentation 的理解可能是错误的. 你能帮我解决这个问题吗?

最佳答案

Wt::Http::Client 的预期用途是为每个请求创建一个新实例。

关于c++ - 异步 Wt::Http::Client 响应和请求匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49534613/

相关文章:

c++ - 在模板方法c++中传递结构参数

c# - C#中特殊字符的Url编码方法

javascript - 在重定向之前在 HTTP 中添加自定义 header

php - 我将如何使用 PHP 异常来定义重定向?

spring-boot - Spring 启动 : Async method not running in separate Thread

javascript - 如何在不返回 Promise 的情况下从对象的 `get()` 获取异步数据

c++ - 将警告视为错误但忽略 googletest 中的警告

c++ - 当我的程序不在焦点时,不获取 GetAsyncKeyState。玩游戏时不工作

c++ - 代码::Blocks, and C++ Compiler problem. cant compile a header

python - 按顺序抓取 URL