packages feed

http-client 0.5.11 → 0.5.12

raw patch · 6 files changed

+62/−13 lines, 6 files

Files

ChangeLog.md view
@@ -1,3 +1,8 @@+## 0.5.12++* Added `requestFromURI` and `requestFromURI_` functions.+* Fixed non-TLS connections going though proxy [#337](https://github.com/snoyberg/http-client/issues/337)+ ## 0.5.11  * Replaced `base64-bytestring` dependency with `memory`.
Network/HTTP/Client.hs view
@@ -135,6 +135,8 @@     , parseUrlThrow     , parseRequest     , parseRequest_+    , requestFromURI+    , requestFromURI_     , defaultRequest      , applyBasicAuth@@ -339,7 +341,7 @@ -- >    [ "name" .= ("Michael" :: Text) -- >    , "age"  .= (30 :: Int) -- >    ]-+-- > -- >   initialRequest <- parseRequest "http://httpbin.org/post" -- >   let request = initialRequest { method = "POST", requestBody = RequestBodyLBS $ encode requestObject } -- >
Network/HTTP/Client/Manager.hs view
@@ -218,12 +218,14 @@         Nothing             | secure req -> simple CKSecure             | otherwise -> simple CKRaw-        Just p -> CKProxy-            (proxyHost p)-            (proxyPort p)-            (lookup "Proxy-Authorization" (requestHeaders req))-            (host req)-            (port req)+        Just p+            | secure req -> CKProxy+                (proxyHost p)+                (proxyPort p)+                (lookup "Proxy-Authorization" (requestHeaders req))+                (host req)+                (port req)+            | otherwise -> CKRaw Nothing (proxyHost p) (proxyPort p)   where     simple con = con (hostAddress req) (host req) (port req) 
Network/HTTP/Client/Request.hs view
@@ -11,6 +11,8 @@     , parseUrlThrow     , parseRequest     , parseRequest_+    , requestFromURI+    , requestFromURI_     , defaultRequest     , setUriRelative     , getUri@@ -96,8 +98,8 @@  -- | Convert a URL into a 'Request'. ----- This defaults some of the values in 'Request', such as setting 'method' to--- GET and 'requestHeaders' to @[]@.+-- This function defaults some of the values in 'Request', such as setting 'method' to+-- @"GET"@ and 'requestHeaders' to @[]@. -- -- Since this function uses 'MonadThrow', the return monad can be anything that is -- an instance of 'MonadThrow', such as 'IO' or 'Maybe'.@@ -111,7 +113,7 @@ -- -- Note that the request method must be provided as all capital letters. ----- 'Request' created by this function won't cause exceptions on non-2XX+-- A 'Request' created by this function won't cause exceptions on non-2XX -- response status codes.  -- -- To create a request which throws on non-2XX status codes, see 'parseUrlThrow'@@ -139,6 +141,29 @@ -- are known to be correctly formatted. parseRequest_ :: String -> Request parseRequest_ = either throw id . parseRequest++-- | Convert a 'URI' into a 'Request'.+--+-- This can fail if the given 'URI' is not absolute, or if the +-- 'URI' scheme is not @"http"@ or @"https"@. In these cases the function+-- will throw an error via 'MonadThrow'.+--+-- This function defaults some of the values in 'Request', such as setting 'method' to+-- @"GET"@ and 'requestHeaders' to @[]@.+-- +-- A 'Request' created by this function won't cause exceptions on non-2XX+-- response status codes. +--+-- @since 0.5.12+requestFromURI :: MonadThrow m => URI -> m Request+requestFromURI = setUri defaultRequest++-- | Same as 'requestFromURI', but if the conversion would fail,+-- throws an impure exception.+--+-- @since 0.5.12+requestFromURI_ :: URI -> Request+requestFromURI_ = either throw id . requestFromURI  -- | Add a 'URI' to the request. If it is absolute (includes a host name), add -- it as per 'setUri'; if it is relative, merge it with the existing request.
http-client.cabal view
@@ -1,5 +1,5 @@ name:                http-client-version:             0.5.11+version:             0.5.12 synopsis:            An HTTP client engine description:         Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/http-client>. homepage:            https://github.com/snoyberg/http-client
test-nonet/Network/HTTP/Client/RequestSpec.hs view
@@ -16,14 +16,29 @@ spec :: Spec spec = do     describe "case insensitive scheme" $ do-        forM_ ["http://example.com", "httP://example.com", "HttP://example.com", "HttPs://example.com"] $ \url ->+        forM_ ["http://example.com", "httP://example.com", "HttP://example.com", "HttPs://example.com"] $ \url -> do             it url $ case parseUrlThrow url of                 Nothing -> error "failed"                 Just _ -> return () :: IO ()-        forM_ ["ftp://example.com"] $ \url ->+            it ("URI " ++ url) $ do+                case parseURI url of+                    Nothing -> error ("invalid test URI: " ++ url)+                    Just uri ->+                        case requestFromURI uri of+                            Nothing -> error "failed"+                            Just _ -> return () :: IO ()+        forM_ ["ftp://example.com"] $ \url -> do             it url $ case parseUrlThrow url of                 Nothing -> return () :: IO ()                 Just req -> error $ show req+            it ("URI " ++ url) $ do+                case parseURI url of+                    Nothing -> error ("invalid test URI: " ++ url)+                    Just uri ->+                        case requestFromURI uri of+                            Nothing -> return () :: IO ()+                            Just req -> error (show req)+      describe "authentication in url" $ do       it "passes validation" $ do