问题标签 [beast]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
294 浏览

c++ - 如何在 boost 中使用客户端身份验证证书?

我试图弄清楚如何告诉 Boost Beast 在 SSL 握手期间使用客户端身份验证证书。

我查看了 Boost Beast 文档,但找不到有关客户端证书的任何提示。这些示例也没有涵盖这种情况。

0 投票
1 回答
104 浏览

c++ - 如何查看有关 async_accept 失败的原始 tcp 数据?

我正在为 WebSocket 和 TCP 服务器使用 boost::beast 库。

由于要求,我必须使用相同的端口。因此我在它之后实现了服务器。

接受函数失败后,我尝试读取原始 tcp 数据,但是我无法知道传递的数据。我只能通过 ec.message() 知道失败原因。当接受功能失败时,我可以知道传递的数据吗?

如果我的想法是不可能的,如何解决这个问题?

0 投票
0 回答
1190 浏览

c++ - 如何从 boost beast http_parser 获取 http 请求正文?

如何从 http_request 获取请求正文?我试过http_request.body(),不行,http_request.body()返回一个空字符串。

编辑:现在,我知道为什么我不能获取请求正文,默认情况下,第一次调用 http_parser.put(),http_parser 只解析 http 行和 http 字段,下次调用 http_parser.put(),http_parser 将解析 http邮件正文。如果我们有一个完整的 http 消息已经包含了 http 正文,在将完整的 http 请求发送到 http_parser 之前,我们必须调用 http_request.eager(true) 来控制 http_parser 现在解析 http 正文。

0 投票
0 回答
440 浏览

tomcat8 - 如何在 tomcat 8.x 服务器中禁用弱密码和 TLS v1.0?

我正在尝试修复一个安全漏洞,该漏洞说应用程序不应该支持 TLS v1.0 并且还需要禁用弱密码。我该如何实现呢?

有问题的 Web 应用程序在专用的 tomcat 8.xx 版本上运行。

0 投票
1 回答
200 浏览

c++ - 是否提升 asio ssl::stream支持多个挂起的 http::async_write 调用?

我有一个 http 客户端执行 http::async_write() 并带有一个在 ssl::stream 上执行 http::async_read() 的回调。所有异步操作都包装在同一个显式链中。

简化的代码如下所示

我连续两次这样调用 async_write 。在执行第二次写入之前,我不会等待第一个 async_write 处理程序完成。

我看到的行为是。第一个 async_write 完成,然后第二个 async_write 完成,然后调用第一个 async_read 并出现错误:“操作已取消”。这重现非常一致,所以我假设 ssl::stream 不支持多个挂起的 http 请求。基本上,在发送下一个请求之前必须等待响应。

我的假设正确吗?我阅读了 ssl::stream 的文档,但它没有说明任何内容(只有异步操作必须由 strand 序列化)。

0 投票
2 回答
678 浏览

c++ - Boost inflate 算法解压

我正在使用 c++ boost 使用 Websocket 客户端开发一个简单的测试代码。我收到回复的服务器说我需要使用膨胀算法解压缩消息。我发现 boost Websocket 库中有 deflate 选项,但它不起作用。请让我知道如何将数据转换为解压缩的字符串。

谢谢 !

0 投票
2 回答
1255 浏览

c++ - 如何使用 boost::beast,下载无阻塞且有响应的文件

我已经从这个例子开始,所以不会发布所有代码。我的目标是下载一个大文件而不阻塞我的主线程。第二个目标是获取通知,以便我可以更新进度条。我确实有几种方式工作的代码。首先是ioc.run();让它开始工作,我下载了文件。但是我无论如何都找不到在没有阻塞的情况下启动会话。

第二种方式我可以拨打电话http::async_read_some并且通话有效,但我无法得到我可以使用的响应。我不知道是否有办法传递捕获的 lambda。

#if 0..#else..#endif切换方法。我敢肯定有一个简单的方法,但我就是看不到它。当我开始工作时,我会清理代码,比如设置本地文件名。谢谢。

主要的,凌乱的,但......

还有我添加到class session

0 投票
1 回答
324 浏览

c++ - 在 Beast Boost 之上开发的 C++ 代理,无法接收来自主机的大响应并将其转发给原始(下游)客户端

我已经使用 boost beast 库实现了一个代理,其中我使用了 boost 组织的异步 https 服务器和客户端示例。在我的代理中,我使用了http::request<http::string_body>http::response<http::string_body>类型的消息,如示例中使用的那样。

此代理运行良好,只是它无法接收(下载)大文件和流。

因此,为此目的,我决定通过结合 https://www.boost.org/doc/libs/1_66_0/libs/beast/example/doc/http_examples.hpp中的两个示例来重新设计我的传输机制。提到的示例是“示例:增量读取”和“示例:发送子进程输出”。

此示例(以下)部分有效,但存在一些问题。

很多时候,当我在一个连接上执行一系列请求时,我未能读取成功写入请求的第二个或第三个响应(标头),因此连接中断,客户端(浏览器)重新连接并尝试在不同的会话中执行它们。这使得交通非常缓慢和烦人。

虽然代理应用程序是异步编写的,但此方法是以同步(阻塞)方式编写的,仅用于以块的形式接收来自主机(上游)的响应,并将接收到的数据块在收到时直接写入原始数据块客户端(下游)。

问题是我做错了什么?

我相信经验丰富的 Beast boost 用户可以通过阅读示例来解决问题。

0 投票
3 回答
255 浏览

c++ - 如何在野兽中重用 http::response

我想定期从网站 http 获取一些价值。使用野兽,代码如下:

但在循环中,

带来了一个临时对象的创建,一个移动/复制分配和临时对象的销毁。我想知道是否有更好的方法来避免这些不必要的成本。</p>

0 投票
1 回答
486 浏览

c++ - 错误:解决:找不到主机(权威)提升野兽

我正在学习使用 boost beast 库。我已经写了服务器。它工作得很好。我还有一个客户端发送 POST 请求。我正在启动服务器。但是,我无法向他发送对 URL http://localhost:8080 的请求,但作为响应,控制台输出:Error: resolve: Host not found (authoritative) 代码是写的基于: https ://github.com/boostorg/beast/blob/develop/example/http/client/sync/http_client_sync.cpp