如何在使用Dispatch和Scala时打印http请求

时间:2013-10-19 09:04:10

标签: scala http scala-dispatch

当我使用Dispatch库和Scala时,出于调试目的,如何在写完这样的语句之后用文本中的标题等打印出整个HTTP请求?

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:2)

假设您使用的是最新版本的lib,url(...)会返回Req,这只是com.ning.http.client.RequestBuilder的一个薄包装。您可以使用svc.toRequest获取基础请求对象,然后可以调用toString或根据您真正关注的信息组合其他可用方法。更多信息:

Java doc for Request

Source for dispatch