1

我正在编写一个服务器,我需要沿着某个请求消息转发。该消息基本上是 POST(或 GET)消息,可能包含几兆字节的文件。此消息被转发到实际存储(或检索)文件的另一台服务器。

我正在使用 Yesod 框架。因此,使用getWaiRequest,我可以获得 WAI 请求。但是要发起一条新消息传递,我需要使用 Network.HTTP.Conduit 来解决它的惰性。所以我需要Request m在那个模块中做一个。但我不知道如何进行这种转换。WAIRequest只是一种数据类型,但 Conduit 是一种Request m类型,所以我不断收到错误消息,试图将内容复制过来。

有人能告诉我我是怎么做到的吗?如果没有,我如何在不使用 HTTP Conduit 的情况下将 WAI 请求传递给另一台服务器也一样好。

谢谢!

4

1 回答 1

2

这两种请求类型不兼容。您需要手动在它们之间进行转换。WAI 并不真正适合代理。最简单的选择是配置您的前端 HTTP 守护程序以立即转发相应的 URL,而无需将它们发送到您的 Yesod 应用程序。

于 2012-09-10T03:09:39.503 回答