Как распечатать полный HTTP-запрос и ответ, отправленный с помощью метода Http() в scalaj-http?

Я хочу записать полный отправленный HTTP-запрос и полученный ответ с помощью метода Http() в scalaj-http. Как это сделать.

Мой код метода Http() выглядит так:

Http(url)
      .method("GET")
      .params(queryParameters )
      .option(HttpOptions.allowUnsafeSSL)
      .timeout(connTimeoutMs = HttpConnectionProperties.httpConTimeout, readTimeoutMs = HttpConnectionProperties.httpReadTimeout)
      .asString

Я хочу записать полный HTTP-запрос и ответ, отправленные за сцену.

1 ответ

Похоже, что нет ничего из коробки в соответствии с печатью HttpRequests? # 93

HttpRequest не является точным аналогом HTTP-запроса, отправляемого по сети, это просто оболочка для некоторого состояния клиента. В настоящее время нет способа распечатать именно то, что отправлено по проводу, как делает curl

Мы могли бы создать служебную функцию-оболочку, которая регистрируется как побочный эффект

def httpWithLogging(...) = {
  val request = 
    Http(url)
      .method("GET")
      .params(queryParameters )
      .option(HttpOptions.allowUnsafeSSL)
      .timeout(connTimeoutMs = HttpConnectionProperties.httpConTimeout, 
  readTimeoutMs = HttpConnectionProperties.httpReadTimeout)

  val response = request.asString

  println(request)
  println(response)

  response.asString
}

Также мы могли бы включить детальную регистрацию проводов с

System.setProperty("javax.net.debug","all")

но может быть шумно

Другие вопросы по тегам