पारित हो सकता है मैं इस दो मिली त्रुटियाँ हैं:एक निहित निष्पादन कॉन्टेक्स्ट नहीं मिला। आप स्प्रे स्केला
Error:(39, 20) Cannot find an implicit ExecutionContext. You might pass
an (implicit ec: ExecutionContext) parameter to your method
or import scala.concurrent.ExecutionContext.Implicits.global.
val pipeline = sendReceive
^
Error:(39, 20) not enough arguments for method sendReceive: (implicit refFactory: akka.actor.ActorRefFactory, implicit executionContext: scala.concurrent.ExecutionContext, implicit futureTimeout: akka.util.Timeout)spray.client.pipelining.SendReceive.
Unspecified value parameter executionContext.
val pipeline = sendReceive
^
मेरे कोड है:
import scala.util.{Success, Failure}
import scala.concurrent.duration._
import akka.actor.ActorSystem
import akka.pattern.ask
import akka.event.Logging
import akka.io.IO
import spray.can.Http
import spray.client.pipelining._
import spray.util._
import argonaut._, Argonaut._
object test {
case class Elevation(location: Location, elevation: Double)
case class Location(lat: Double, lng: Double)
case class GoogleApiResult(status: String, results: List[Elevation])
implicit def locationFormat: CodecJson[Location] = casecodec2(Location.apply, Location.unapply)("lat", "lng")
implicit def elevationFormat: CodecJson[Elevation] = casecodec2(Elevation.apply, Elevation.unapply)("location", "elevation")
implicit def googleApiResultFormat: CodecJson[GoogleApiResult] = casecodec2(GoogleApiResult.apply, GoogleApiResult.unapply)("status", "results")
object Main extends App {
// we need an ActorSystem to host our application in
implicit val system = ActorSystem("simple-spray-client")
// execution context for futures below
val log = Logging(system, getClass)
log.info("Requesting the elevation of Mt. Everest from Googles Elevation API...")
val pipeline = sendReceive
val responseFuture= pipeline {
Get("http://maps.googleapis.com/maps/api/elevation/json?locations=27.988056,86.925278&sensor=false")
}
responseFuture.onComplete {
case Success(result) =>
println(result)
log.info("The elevation of Mt.Everest is: {} m", result.toString.decodeOption[Elevation].get)
shutdown()
case Failure(error) =>
log.error(error, "Couldn't get elevation")
shutdown()
}
def shutdown(): Unit = {
IO(Http).ask(Http.CloseAll)(1.second).await
system.shutdown()
}
}
}`
आप प्रतिक्रिया सही है लेकिन @Fatih Donmez जब मैं didi log.info ("माउंट.इवरेस्ट की ऊंचाई है: {} एम", result.toString()। DecodeOption.get) लेकिन हर समय उत्खनन करना चाहता हूं मुझे त्रुटि है: त्रुटि: (54, 76) टाइप Argonaut.DecodeJson [ए] विधि के साथ शुरू करने के तरीके से सेट डीकोडजेसन log.info ("माउंट एवरेस्ट की ऊंचाई है: {} एम", परिणाम .toString() decodeOption.get) ^ –
मुझे लगता है कि आपको इसके लिए एक और प्रश्न बनाना चाहिए। –
मैं अपनी प्रश्न सीमा तक नहीं पहुंच सकता: '(:( –