@@ -111,7 +111,7 @@ performRequest req = do
111 Right response -> do
111 Right response -> do
112 let status = Client.responseStatus response
112 let status = Client.responseStatus response
113 status_code = statusCode status
113 status_code = statusCode status
114− ourResponse = clientResponseToReponse response
114+ ourResponse = clientResponseToResponse response
115 unless (status_code >= 200 && status_code < 300) $
115 unless (status_code >= 200 && status_code < 300) $
116 throwError $ FailureResponse ourResponse
116 throwError $ FailureResponse ourResponse
117 return ourResponse
117 return ourResponse
@@ -121,14 +121,18 @@ performStreamingRequest req = do
121 m <- asks manager
121 m <- asks manager
122 burl <- asks baseUrl
122 burl <- asks baseUrl
123 let request = requestToClientRequest burl req
123 let request = requestToClientRequest burl req
125 return $ StreamingResponse $
124 return $ StreamingResponse $
126 \k -> Client.withResponse request m $
125 \k -> Client.withResponse request m $
127+ let status = Client.responseStatus r
128+ status_code = statusCode status
129+ unless (status_code >= 200 && status_code < 300) $ do
130+ b <- BSL.fromChunks <$> Client.brConsume (Client.responseBody r)
131+ throw $ FailureResponse $ Response status b (fromList $ Client.responseHeaders r) (Client.responseVersion r)
128− k (Client.responseStatus r, fromList $ Client.responseHeaders r, Client.responseVersion r, Client.responseBody r)
132+ k (status, fromList $ Client.responseHeaders r, Client.responseVersion r, Client.responseBody r)
130−clientResponseToReponse :: Client.Response BSL.ByteString -> Response
134+clientResponseToResponse :: Client.Response BSL.ByteString -> Response
131−clientResponseToReponse r = Response
135+clientResponseToResponse r = Response
132 { responseStatusCode = Client.responseStatus r
136 { responseStatusCode = Client.responseStatus r
133 , responseBody = Client.responseBody r
137 , responseBody = Client.responseBody r
134 , responseHeaders = fromList $ Client.responseHeaders r
138 , responseHeaders = fromList $ Client.responseHeaders r