我正在编写服务器,我需要转发某条Request消息。此消息基本上是POST(或GET)消息,可能包含几兆字节的文件。此消息将转发到另一个实际存储(或检索)文件的服务器。
我正在使用Yesod框架。因此,使用getWaiRequest
,我可以获得WAI请求。但是为了启动新消息传递,我需要使用Network.HTTP.Conduit来实现其懒惰。所以我需要在该模块中创建一个Request m
。但我不知道如何进行这种转换。 WAI的Request
只是一种数据类型,但是Conduit是一种Request m
类型,所以我不断收到错误消息,试图复制内容。
有人可以告诉我这是怎么做到的吗?如果没有,我如何在不使用HTTP Conduit的情况下将WAI请求传递给另一台服务器也同样合适。
谢谢!
答案 0 :(得分:2)
这两种请求类型不兼容。您需要手动转换它们。 WAI不适合代理。最简单的选择是配置您的前端HTTP守护程序,以便立即转发相应的URL,而无需将它们发送到您的Yesod应用程序。