2012-10-16 4 views
2

Я пытаюсь получить код ответа (200,404 и т.д.) от я ДУМАЮ тип ответа в классе HTTP с simpleHTTP До сих пор:Haskell SimpleHTTP получить код ответа

--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) 

ответ

3

Я думаю, что вы хотите

getResponseCode :: Result (Response ty) -> IO ResponseCode 

из Network.HTTP модуля, если вы используете HTTP-4000.2.4 или более поздней версии. Для более ранних версий HTTP вам нужно было бы сопоставить рисунок на поле rspCode, по-видимому, похоже на способ, показанный ниже для поля rspReason.

Если вы заинтересованы в причине использовать rspReason поле Response после

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 
+0

KEWL воли попробуйте, но это только дает мне подпись? – user914584

+0

Да, это дает вам только тройку 'Int', поэтому тип 'Response' имеет поле' rspReason'. –

+0

getResponseCode :: Результат (TY Response) -> IO ResponseCode Типа подпись для 'getResponseCode» не хватает сопроводительное связывание – user914584

Смежные вопросы