如何使用Network-HTTP-Conduit applyBasicAuth

时间:2013-05-08 01:11:35

标签: haskell http-conduit

我想使用Network.HTTP.Conduit中的基本身份验证,但无法使其正常工作。

来自文档......

applyBasicAuth :: ByteString -> ByteString -> Request m -> Request mSource

将Basic Auth标头(带有指定的用户名和密码)添加到给定的请求中。忽略错误处理:

  

applyBasicAuth用户传递$ fromJust $ parseUrl url

但是当我尝试在一个简单的“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'

1 个答案:

答案 0 :(得分:4)

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

您需要自己从正确的模块导入它。你可以find out which one using Hoogle

在这种情况下,您需要导入Data.Maybe

相关问题