Hatena::Grouphaskell

suztomoの日記

 | 

2012-02-07

初Conduit

00:30

HTTP Postリクエストをしないといけなかったので、Network.HTTP.Conduitを使ってみた。といってもぜんぜんSourceとかSinkとか出てこないけれども。一部抜粋。


    getAccessToken :: String -> IO (Maybe Text)
    getAccessToken code = do
      let payload = [("code", C8.pack code), ("client_id", C8.pack key),
                     ("client_secret", C8.pack sec),
                    ("redirect_uri", "http://localhost:3000/auth/page/GooglePlus"),
                    ("grant_type", "authorization_code")]
      parsedUrl <- parseUrl accUrl
      let req = urlEncodedBody payload $ parsedUrl
      (statusCode, content) <- withManager $ \manager -> do
                                 Response status _ bsrc <- httpLbs req manager
                                 return (status, bsrc)
      putStrLn $ "Got status: " ++ (show statusCode)

Ugoita

Got status: Status {statusCode = 200, statusMessage = "OK"}

StringをByteStringに変換するのはData.ByteString.Char8を使うといいぽい。import qualified Data.ByteString.Char8 as C8。仲間にData.ByteString.UTF-8があるということはきっとユニコードはそっちをつかったほうがいいということだろう。

 |