HaskellでHTTP
HaskellでHTTP!!ということでやってみました。
具体的には、指定先のHTMLを取得してきます。
サンプルコードです。
import Network.HTTP import Network.HTTP.Proxy (parseProxy) import Network.Browser (browse, request, setProxy, request) import Data.Maybe main :: IO () main = do -- リクエストを送り、レスポンスを取得する。 (uri, res) <- browse $ request $ getRequest "http://google.co.jp" -- レスポンスの表示 putStr $ rspBody res
上のプログラムで使っている主な関数の型は
Network.HTTP getRequest :: String -> Request_String Network.HTTP.Base type Request_String = Request String Network.Browser request :: HStream ty => Request ty -> BrowserAction (HandleStream ty) (URI, Response ty) browse :: BrowserAction conn a -> IO a
プロキシを使う場合には次のようにします。
main :: IO () main = do (uri, res) <- browse $ do -- プロキシを設定してリクエストを送る setProxy . fromJust $ parseProxy "proxy.server:8080" request $ getRequest "http://google.co.jp" putStr $ rspBody res
プロキシ関連の関数の型は次のようになります。
Network.HTTP.Proxy parseProxy :: String -> Maybe Proxy Network.HTTP.Base setProxy :: Proxy -> BrowserAction t ()