0
我想使用Network.HTTP.Conduit
的基本身份验证,但无法使其工作。如何使用Network-HTTP-Conduit applyBasicAuth
从文档...
applyBasicAuth :: ByteString -> ByteString -> Request m -> Request mSource
添加一个基本认证头(与指定的用户名和密码)给定的请求。忽略错误处理:
applyBasicAuth用户通$ fromJust $的parseURL网址
但是,当我试图实现一个简单的 “Hello World” 的例子:
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"
编译失败:不在范围:fromJust
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'
它的工作原理,但在以前的练习中,我从来没有导入Data.Maybe并可以使用Maybe类型。 – 2013-05-08 02:14:49
@Chris:'Maybe'类型也由Prelude导出,这就是为什么您不必导入任何内容(因为Prelude默认导入)。但是,并不是所有用于'Maybe'的实用函数都在前奏中。例如,对于同样的事情列表功能。最常见的是Prelude,其余的都在'Data.List'中。 – hammar 2013-05-08 02:17:10
感谢您的澄清。它确实有帮助。 – 2013-05-08 03:04:34