0

スプレー クライアントのリクエスト レベル API を使用してサーバーをリクエストしています。

これは私のコードです:

  var request: HttpRequest = HttpRequest(method, uri, headers, HttpEntity(MediaTypes.`application/json`, json.toString()))
  val result = for {
   resp <- io.ask(request).mapTo[HttpResponse]
  } yield {
    println("Response:" + resp)
  }
  result onComplete {
     case Success(value) => println("success" + value)
     case Failure(ex)    => println("failure" + ex)
  }

思うように返事が来ません。実行コンテキストが失敗します。ChunkedResponseStart(HttpResponse(200 OK,Empty,List(Transfer-Encoding: chunked)HttpResponse 自体の代わりに受信しており、mapTo が失敗しています。

なぜこれが起こっているのか、どうすれば解決できるのかわかりません。

4

1 に答える 1

0

私はそれがあなたに役立つと思います http://spray.io/documentation/1.2.2/spray-client/

val 応答: Future[HttpResponse] = パイプライン(Get(" http://spray.io/ "))

あなたはこのようなものを書くことができます

val req: Future[HttpResponse] = pipeline(Post("http://localhost:xxxx/...")
        .withHeaders(RawHeader("Name", param))
        .withEntity(HttpEntity("application/json", data.toJson.toString())))

と抽出

def extract(req: Future[HttpResponse]): HttpResponse = Await.result(req, 40.seconds)

使える情報を得る

def getStatusCode(response: HttpResponse) = response.status.intValue

if(getStatusCode(response) == 200) println(~better use same test lib or match~)
于 2016-03-10T14:52:16.887 に答える