首页 文章

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

提问于
浏览
4

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

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

2 回答

  • 8

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

    Java doc for Request

    Source for dispatch

  • 2

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

    com.ning.http.client
    

    Beware ,它记录了一个废话 LOT . 我假设您使用 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>
    

相关问题