5

当我使用 Dispatch 库和 Scala 时,出于调试目的,如何在编写这样的语句后以文本形式打印出带有标头等的整个 HTTP 请求?

val svc = url("http://api.hostip.info/country.php")
4

2 回答 2

8

Dispatch 基于 Netty.io,它完全实现了 sl4j 日志外观。调试日志已经通过以下方式为您完成:

com.ning.http.client

当心,它记录了很多废话。我假设您ch.qos.logback用于记录目的:

转到src/main/resources,创建一个名为 的文件default.logback.xml,并将以下内容添加到其中:

<configuration>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
    </encoder>
  </appender>

  <root level="DEBUG">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>
于 2013-10-19T15:32:55.203 回答
2

假设您使用的是最新版本的 lib,则url(...)返回 a Req,它只是com.ning.http.client.RequestBuilder. 您可以使用 获取底层请求对象svc.toRequest,然后您可以调用toString或组合其他可用方法,具体取决于您真正想要的信息。更多信息:

请求的 Java 文档

发货来源

于 2013-10-19T15:29:25.670 回答