如何使用Scotty在前端显示来自HTTP GET请求的响应?

时间:2017-08-09 13:46:49

标签: haskell haskell-stack io-monad scotty wreq

我第一次尝试Scotty,我似乎无法完成我的GET请求。响应以类型

返回
IO (Response bytestring-0.10.8.1:Data.ByteString.Lazy.Internal.ByteString)

我知道我需要将它转换为可由Scotty输出的类型,但我无法弄清楚如何做到这一点。

我的完整代码是:

{-# LANGUAGE DeriveGeneric     #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where

import           Control.Lens
import           Control.Monad.IO.Class
import           Data.Aeson             (FromJSON, ToJSON, Value, decode,
                                         encode)
import           Data.Map               as Map
import           GHC.Generics
import           Lib
import           Network.Wreq           as Wreq
import           Web.Scotty             as Scotty

main :: IO ()
main =
  scotty 3000 $
   Scotty.get "/" $ do
    -- html "Hello World!"
     Wreq.get"https://www.metaweather.com/api/location/search/?query=New%20York"

我尝试使用LiftIO,但仍然给我一个类型错误。我想知道我应该如何转换我的响应,以便我可以在前端显示它,就像我显示我的初始" Hello World"用html。

1 个答案:

答案 0 :(得分:1)

如果您只是在寻找快速的概念验证并且不担心错误的响应,您可以使用responseBody镜头并将惰性字节字符串发送到raw而不是{ {1}}:

html