1

Haskell で Web サイトに対して GET および POST を実行する方法を理解しようとしていますが、単純な POST を実行する方法を理解することさえ難しいようです。これはGETだと思います。

import Network.HTTP.Conduit
import Data.Conduit
import Data.Conduit.Binary (sinkFile)
import qualified Data.ByteString.Lazy as L
import Control.Monad.IO.Class (liftIO)
import Control.Monad.Trans.Resource (runResourceT)

main :: IO ()
main = do
  runResourceT $ do

    case parseUrl"https://www.google.com" of
      Nothing -> liftIO $ putStr "Not a valid URL"
      Just req -> withManager $ \manager -> do
        res <- httpLbs req manager
        liftIO . L.putStr $ responseBody res

Haskell で POST を実行する方法の例を教えてください。理解できる良い例をどこかで見つけようとしましたが、運がありませんでした! Post Values "login" -> "James", "Pass" -> "MyPassword" を使用して表示してください。前もって感謝します!

4

1 に答える 1

1

メソッド呼び出しRequestであることを示すには、データ型を変更する必要があります。POSTまたhttp-client (version 0.3.6)、Michael Snoyman が最近setQueryString関数を追加したため、最新のものをインストールしてください。

{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.Conduit
import Control.Monad.IO.Class
import qualified Data.ByteString.Lazy as L
import Control.Monad.Trans.Resource

main :: IO ()
main = do
  runResourceT $ do
    initReq <- parseUrl"https://www.google.com"
    let req = initReq {
          method = "POST"
          }
        req' = setQueryString [("login", Just "James"),("Pass", Just "MyPassword")] req

    withManager $ \manager -> do
      res <- httpLbs req' manager
      liftIO . L.putStr $ responseBody res
于 2014-07-27T19:01:03.813 に答える