Skip to content

Instantly share code, notes, and snippets.

@saw303
Created December 3, 2014 20:26
Show Gist options
  • Save saw303/8d50e970910212d9692b to your computer and use it in GitHub Desktop.
Save saw303/8d50e970910212d9692b to your computer and use it in GitHub Desktop.
Vert.x proxy verticle
/**
* @author Silvio Wangler
*/
def logger = container.logger
def server = vertx.createHttpServer().requestHandler { req ->
logger.info "Proxying request: ${req.uri}. Going to url ${req.params.url}"
def client = vertx.createHttpClient([host: 'www.zsc-supporter.ch', port: 80])
def c_req = client.request(req.method, '/') { c_res ->
logger.info "Proxying response: ${c_res.statusCode}"
c_res.headers.names.each {
logger.info "Header ${it} = ${c_res.headers.get(it)}"
}
req.response.chunked = true
req.response.statusCode = c_res.statusCode
req.response.headers.set(c_res.headers)
c_res.dataHandler { data ->
logger.info "Proxying response body: $data"
req.response << data
}
c_res.endHandler { req.response.end() }
}
c_req.chunked = true
//c_req.headers.set(req.headers)
req.dataHandler { data ->
logger.info "Proxying request body ${data}"
c_req << data
}
req.endHandler{ c_req.end() }
}.listen(8080)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment