haskell wreq 参数列表

haskell wreq param list

在出色的 wreq Haskell 库中,可以轻松地向 URL:

添加一个或多个查询参数

opts = defaults & param "key" .~ ["value"]

然而我正在努力做的是一次添加一个 list 参数:

params = [("key1", "value1"), ("key2", "value2"), ("key3", "value3")]

我知道有功能 params 但我找不到任何关于如何使用它的例子。

param <key>params都是镜头:

param  :: Text -> Lens' Options [Text] 
params ::         Lens' Options [(Text, Text)]

无需过多赘述,您可以想到镜头聚焦某物,例如param "foo"着重于Options中属于参数foo(*)的部分[Text]。然后,您可以 change/query/manipulate 这些具有正确功能的值(请参阅 lens 包)。

您已经使用 (.~) 替换了当前值,您可以通过 params:

再次使用它
default & params .~ [("key1", "value1"), ("key2", "value2"), ("key3", "value3")]

在这种情况下,您可以将 (.~) 视为

(.~) :: Lens' a b -> b -> a -> a
-- concrete:
(.~) :: Lens' Options [(Text, Text)] -> [(Text, Text)] -> Options -> Options

(*) 这不是 100% 正确,因为镜头允许你做各种事情,但对于这种情况来说已经足够好了。