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'