Skip to content

Commit

Permalink
proxy stream chunked
Browse files Browse the repository at this point in the history
  • Loading branch information
sclasen committed Feb 25, 2013
1 parent d4a58df commit ed8e769
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
2 changes: 1 addition & 1 deletion project/Build.scala
Expand Up @@ -8,7 +8,7 @@ object Build extends Build {
val playextras = (Project("play-extras", file(".")) settings(
organization := "com.sclasen",
name := "play-extras",
version := "0.2.8-SNAPSHOT",
version := "0.2.10-SNAPSHOT",
scalaVersion := "2.10.0",
crossScalaVersions := Seq("2.10.0"),
libraryDependencies ++= dependencies,
Expand Down
14 changes: 10 additions & 4 deletions src/main/scala/com/heroku/play/api/libs/ws/WSProxy.scala
@@ -1,14 +1,18 @@
package com.heroku.play.api.libs.ws

import play.api.libs.iteratee.{ Concurrent, Enumerator }
import play.api.libs.iteratee.{ Iteratee, Concurrent, Enumerator }
import com.ning.http.client._
import com.ning.http.client.AsyncHandler.STATE
import play.api.mvc.{ Results, Result, ResponseHeader, SimpleResult }
import play.api.mvc._
import play.api.libs.ws.WS
import concurrent.{ Future, Promise, future, promise }
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import play.api.mvc.ResponseHeader
import com.ning.http.client.Request
import play.api.mvc.SimpleResult
import play.api.http.Status

object WSProxy {
object WSProxy extends Controller {

def proxyGetAsync(url: String, responseHeadersToOverwrite: (String, String)*) = proxyRequestAsync(WS.client.prepareGet(url).build(), responseHeadersToOverwrite.toMap)

Expand Down Expand Up @@ -57,7 +61,9 @@ object WSProxy {
val hmap = h.getHeaders.iterator().asScala.map {
entry => entry.getKey -> entry.getValue.get(0)
}.toMap ++ responseHeadersToOverwrite
if (h.getHeaders.containsKey("Content-Length") && h.getHeaders.get("Content-Length").get(0) != "0") {
if (h.getHeaders.containsKey("transfer-encoding") && h.getHeaders.get("transfer-encoding").get(0) == "chunked") {
Status(s).stream(enum).withHeaders(hmap.toSeq: _*)
} else if (h.getHeaders.containsKey("Content-Length") && h.getHeaders.get("Content-Length").get(0) != "0") {
SimpleResult(ResponseHeader(s, hmap), enum)
} else {
SimpleResult(ResponseHeader(s, hmap), Enumerator(Results.EmptyContent()))
Expand Down

0 comments on commit ed8e769

Please sign in to comment.