简体   繁体   中英

How to use a standalone WSClient in a Scala application

I would like to use ws in a standalone application. Trying this code, copied from https://gist.github.com/cdimascio/46b2b7d2986636c1189c :

import com.ning.http.client.AsyncHttpClientConfig
import play.api.libs.ws.ning._
import play.api.libs.ws._

// provide an execution context
import scala.concurrent.ExecutionContext.Implicits.global

object WSStandaloneTest {

  def main(args: Array[String]) {
    // set up the client
    val config = new NingAsyncHttpClientConfigBuilder(DefaultWSClientConfig()).build
    val builder = new AsyncHttpClientConfig.Builder(config)
    val client = new NingWSClient(builder.build)

    // execute a GET request
    val response = client.url("http://www.example.com").get

    // print the response body
    response.foreach(r => {
      println(r.body) 
      // not the best place to close the client, 
      // but it ensures we dont close the threads before the response arrives 
      // Good enough for the gist :-D
      client.close()
    })
  }
}

Results in the following error:

[error] object ning is not a member of package play.api.libs.ws
[error] import play.api.libs.ws.ning._

In my build.sbt I have this:

libraryDependencies += "com.typesafe.play" %% "play-json" % "2.6.1"
libraryDependencies += "com.typesafe.play" %% "play-ws" % "2.6.1"

What am I doing wrong?

NingWSClient is deprecated in Play! 2.5.x.

In 2.6.x

The ning package has been replaced by the ahc package, and the Ning * classes replaced by AHC*.

There is a migration guide available in the official doc .

So you can choose to downgrade to 2.5.x and use ning or update the code.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM