Haskell 如何使用网络HTTP导管applyBasicAuth

Haskell 如何使用网络HTTP导管applyBasicAuth,haskell,http-conduit,Haskell,Http Conduit,我想使用来自的基本身份验证,但无法使其工作 从文档中 applyBasicAuth :: ByteString -> ByteString -> Request m -> Request mSource 向给定请求添加基本身份验证标头(使用指定的用户名和密码)。忽略错误处理: applyBasicAuth用户传递$fromJust$parseUrl url 但当我试图在一个简单的“Hello World”示例中实现这一点时: “不在范围内:fromJust”表示编译器无法找到

我想使用来自的基本身份验证,但无法使其工作

从文档中

applyBasicAuth :: ByteString -> ByteString -> Request m -> Request mSource
向给定请求添加基本身份验证标头(使用指定的用户名和密码)。忽略错误处理:

applyBasicAuth用户传递$fromJust$parseUrl url

但当我试图在一个简单的“Hello World”示例中实现这一点时:

“不在范围内:fromJust”表示编译器无法找到
fromJust
,因为它未在您的模块或任何导入的模块(包括Prelude,默认情况下自动导入)中定义

您需要自己从正确的模块导入它。你可以

在这种情况下,您需要导入。

“不在范围内:fromJust”表示编译器无法找到fromJust,因为它未在您的模块或任何导入的模块(包括Prelude,默认情况下自动导入)中定义

您需要自己从正确的模块导入它。你可以


在这种情况下,您需要导入。

它可以正常工作,但在以前的练习中,我从未导入过数据。Maybe和Maybe可以使用Maybe类型。@Chris:Prelude也导出了
Maybe
类型,这就是您不必导入任何内容的原因(因为Prelude是默认导入的)。但是,并非所有使用
的实用函数都在序言中。例如,列表函数也是如此。最常见的在序言中,其余的在
Data.List
中。感谢您的澄清。它真的很有用。它可以工作,但在以前的练习中,我从未导入数据。可能,也可以使用“可能”类型。@Chris:Prelude也会导出“可能”
类型,这就是为什么您不必导入任何内容(因为默认情况下会导入“Prelude”)。但是,并非所有使用
的实用函数都在序言中。例如,列表函数也是如此。最常见的在序言中,其余的在
Data.List
中。感谢您的澄清。这真的很有帮助。
import Data.ByteString as B

import Network.HTTP.Conduit
import Network.Socket

main :: IO ()
main = withSocketsDo $ do
  req <- applyBasicAuth user pass $ fromJust $ parseUrl "http://www.oracle.com"
  response <- withManager $ httpLbs req
  B.putStrLn $ responseBody response
  where
    user = B.pack "scott"
    pass = B.pack "tiger"
make fromJust.exe && ./fromJust.exe
ghc --make fromJust.hs
[1 of 1] Compiling Main             ( fromJust.hs, fromJust.o )

fromJust.hs:16:37: Not in scope: `fromJust'