Skip to content

Instantly share code, notes, and snippets.

@capotej
Created April 25, 2013 18:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save capotej/5462182 to your computer and use it in GitHub Desktop.
Save capotej/5462182 to your computer and use it in GitHub Desktop.
dead simple http proxy in finagle
package com.twitter.dumproxy
import com.twitter.finagle.Service
import org.jboss.netty.handler.codec.http._
import java.net.InetSocketAddress
import com.twitter.finagle.builder.{ClientBuilder, Server, ServerBuilder}
import com.twitter.finagle.http.Http
object App {
class RequestReceiver extends Service[HttpRequest, HttpResponse] {
def apply(request: HttpRequest) = {
val client: Service[HttpRequest, HttpResponse] = ClientBuilder()
.codec(Http())
.hosts(request.getHeader("Host") + ":80")
.hostConnectionLimit(1)
.build()
client.apply(request)
}
}
def main(args: Array[String]) {
val recv = new RequestReceiver
val myService: Service[HttpRequest, HttpResponse] = recv
val server: Server = ServerBuilder()
.codec(Http())
.bindTo(new InetSocketAddress(8080))
.name("httpserver")
.build(myService)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment