やりたいことはタイトルそのまま。haskellで書く。
使うパッケージはhttp-contuid 2.1.8とutf8-string 1.0.1.1(stackのlts-3.14)
{-# LANGUAGE OverloadedStrings #-}importqualified Data.ByteString.Lazy.UTF8 as U import Network.HTTP.Conduit ap = [("account", "name"), ("pwd", "password")] main =do man <- newManager tlsManagerSettings log'<- parseUrl "http://piyopiyo/wp-login.php"let log= urlEncodedBody ap log' cookies <- httpLbs log man >>= return . responseCookieJar req'<- parseUrl "http://piyopiyo/target.html"let req = req' { cookieJar = Just cookies } httpLbs req man >>= return . U.toString . responseBody >>= putStrLn
main
の前半でセッション情報を含んだCookieを取得して、後半でそれを使ってログインしていないと見れないページを取得。
requestBody
にログイン情報を乗せて失敗してハマった。urlEncodedBody
を使うのがポイント。