@@ -82,11 +82,12 @@ displayHttpRequest :: Method -> String
82displayHttpRequest method = "HTTP " ++ cs method ++ " request"
82displayHttpRequest method = "HTTP " ++ cs method ++ " request"
85−performRequest :: Method -> Req -> (Int -> Bool) -> BaseUrl -> EitherT String IO ByteString
85+performRequest :: Method -> Req -> (Int -> Bool) -> BaseUrl -> EitherT String IO (Int, ByteString)
86performRequest method req isWantedStatus host = do
86performRequest method req isWantedStatus host = do
87 partialRequest <- liftIO $ reqToRequest req host
87 partialRequest <- liftIO $ reqToRequest req host
89 let request = partialRequest { Client.method = method
89 let request = partialRequest { Client.method = method
90+ , checkStatus = \ _status _headers _cookies -> Nothing
92 eResponse <- liftIO $ __withGlobalManager $ \ manager ->
93 eResponse <- liftIO $ __withGlobalManager $ \ manager ->
@@ -100,7 +101,7 @@ performRequest method req isWantedStatus host = do
100 let status = Client.responseStatus response
101 let status = Client.responseStatus response
101 unless (isWantedStatus (statusCode status)) $
102 unless (isWantedStatus (statusCode status)) $
102 left (displayHttpRequest method ++ " failed with status: " ++ showStatus status)
103 left (displayHttpRequest method ++ " failed with status: " ++ showStatus status)
103− return $ Client.responseBody response
104+ return $ (statusCode status, Client.responseBody response)
105 showStatus (Status code message) =
106 showStatus (Status code message) =
106 show code ++ " - " ++ cs message
107 show code ++ " - " ++ cs message
@@ -109,7 +110,7 @@ performRequest method req isWantedStatus host = do
109performRequestJSON :: FromJSON result =>
110performRequestJSON :: FromJSON result =>
110 Method -> Req -> Int -> BaseUrl -> EitherT String IO result
111 Method -> Req -> Int -> BaseUrl -> EitherT String IO result
111performRequestJSON method req wantedStatus host = do
112performRequestJSON method req wantedStatus host = do
112− responseBody <- performRequest method req (== wantedStatus) host
113+ (_status, responseBody) <- performRequest method req (== wantedStatus) host
114 (\ message -> left (displayHttpRequest method ++ " returned invalid json: " ++ message))
115 (\ message -> left (displayHttpRequest method ++ " returned invalid json: " ++ message))