如何构造Network.HTTP.conductor.Request对象?

如何构造Network.HTTP.conductor.Request对象?,http,haskell,http-conduit,Http,Haskell,Http Conduit,正在尝试使用包构造请求。说明如下: 此数据类型的构造函数未公开。相反,你应该 使用该方法检索默认实例,或 从URL构造,然后使用下面的记录 修改 我不知道这意味着什么。如何“修改”不可变的请求对象;此外,“下面”的任何函数都不会返回请求对象 就我所知: main = do let req = def :: String putStrLn "What now? How do I make it a POST?" 虽然我也不知道为什么我在上面使用了String 感谢您的帮助。文档中

正在尝试使用包构造
请求
。说明如下:

此数据类型的构造函数未公开。相反,你应该 使用该方法检索默认实例,或 从URL构造,然后使用下面的记录 修改

我不知道这意味着什么。如何“修改”不可变的请求对象;此外,“下面”的任何函数都不会返回
请求
对象

就我所知:

main = do
    let req = def :: String
    putStrLn "What now? How do I make it a POST?"
虽然我也不知道为什么我在上面使用了
String


感谢您的帮助。

文档中根本不清楚,但“下面的函数”实际上是记录标签,因此您可以使用记录更新语法来构造所需的请求。当然,这里的“修改”意味着基于默认请求创建一个新请求,而不是实际的破坏性更新

换句话说,类似这样的事情:

let req = def { method = methodPost, ... }

你说得对,还不清楚。我只是添加了一些评论,希望能澄清一点。关于这个设置的解释(我称之为设置类型)可以在:@MichaelSnoyman你不是指
def
而不是
req
中的
let req=req
?Doh,问题是我指的是
let req=initReq>{
。其思想是让
parseUrl
函数为您处理大部分工作,然后再进行调整。