나는 Haskell에 비교적 익숙하지 않으며 cURL 요청의 응답을 구문 분석하는 데 문제가 있습니다.
지금까지 가지고있는 코드는 다음과 같습니다.
import Control.Monad
import Network.Curl
import Data.Aeson
getReq :: URLString -> [CurlOption] -> IO (CurlCode, String)
getReq url opt = curlGetString url opt
getReq 함수를 사용하면
Prelude> getReq "http://google.com" []
나는 다음과 같은 응답을 얻습니다.
(CurlOk, "<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">...)
내가하려는 것은 어떻게 든 CurlCode (CurlOk)를 구문 분석하는 것입니다. IO 유형이므로 CurlCode를 얻는 방법에 대해 혼란 스럽습니다.
어떤 도움이라도 대단히 감사합니다!
다음은 수행 할 수있는 작업에 대한 몇 가지 아이디어입니다. 그들 중 당신이 원하는 것에 가까운 것이 있습니까?
getCurlCode :: IO (CurlCode, String) -> IO CurlCode
getCurlCode res = do
(cc, _) <- res
return cc
printCurlCode :: IO (CurlCode, String) -> IO ()
printCurlCode res = do
(cc, _) <- res
print cc
printStatus :: IO (CurlCode, String) -> IO ()
printStatus res = do
cc <- getCurlCode res
if cc == CurlOk
then putStrLn "Everything okay"
else putStrLn "Maybe not okay"
curlMessage :: CurlCode -> String
curlMessage cc =
case cc of
CurlOk -> "Everything okay"
_ -> "Maybe not okay"
printCurlMessage :: IO (CurlCode, String) -> IO ()
cc <- getCurlCode res
let msg = curlMessage cc
putStrLn msg
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다