Skip to content

Instantly share code, notes, and snippets.

@denisshevchenko
Last active January 27, 2016 06:09
Show Gist options
  • Save denisshevchenko/350abd5c692faac8df11 to your computer and use it in GitHub Desktop.
Save denisshevchenko/350abd5c692faac8df11 to your computer and use it in GitHub Desktop.
{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.ReverseProxy
import Network.HTTP.Client
import Network.HTTP.Types
import qualified Network.Wai as WAI
import Network.Wai.Handler.Warp (run)
import Data.Conduit.Network
main :: IO ()
main = do
manager <- newManager defaultManagerSettings
let proxy = waiProxyTo modifyRequest
defaultOnExc
manager
run 8081 proxy
modifyRequest :: WAI.Request -> IO WaiProxyResponse
modifyRequest requestFromBrowser =
let newRequest = requestFromBrowser {
-- Here I can completely change the request from Firefox, based on
-- https://hackage.haskell.org/package/wai-3.0.4.0/docs/src/Network-Wai-Internal.html#Request
}
ourUpstream = ProxyDest "180.150.149.146" 443
in return $ WPRModifiedRequest newRequest ourUpstream
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment