簡體   English   中英

Haskell,將值發布到網頁

[英]Haskell, Posting Values to Webpage

我試圖弄清楚如何在Haskell的網站上執行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”來顯示我嗎? 提前致謝!

您需要更改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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM