Haskell SimpleHTTP获取响应代码

时间:2012-10-16 18:57:07

标签: http haskell response http-response-codes

我试图从i中获取响应代码(200,404等)使用simpleHTTP在HTTP类中使用响应类型 到目前为止:

--how to get the http response Int from response
getStatusCode response  = print 0

--this works...
--- othercode ---
rsp <- simpleHTTP (defaultGETRequest_ clean_uri) 
file_buffer <- getResponseBody(rsp)
--this fails
response = (getStatusCode rsp)

1 个答案:

答案 0 :(得分:3)

我认为你想要的是

getResponseCode :: Result (Response ty) -> IO ResponseCode
如果您使用的是HTTP-4000.2.4或更高版本,请从Network.HTTP模块

。对于HTTP的早期版本,您必须在rspCode字段上对自己进行模式匹配,类似于下面显示的rspReason字段的方式。

如果您对原因感兴趣,请使用Response之后的rspReason字段

rsp <- simpleHTTP ...

你有

rsp :: Either ConnError (Response ty)  -- Result is a type synonym for (Either ConnError)

并且可以访问每个

的原因
let reason = case rsp of
               Left err -> show err  -- for example
               Right response -> rspReason response
putStrLn $ "Here's why: " ++ reason