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