我使用Scalatra应用程序包装了上游API,并使用Dispatch发出了异步请求。 但是,我很难将上游XML转换为xml.Elems使用Dispatch内置的XML处理支持的xml.Elems

我正在尝试做与Dispatch文档中非常相似的事情,即检索上游XML并进行一些重新处理。 有问题的功能类似于:

  def facilitiesSvc = {
    val myhost = host("upstream.api.co.uk") / "organisations" / "foo" / "123" / "bar" / "core.xml"
    myhost.addQueryParameter("apikey", "123456")
    myhost
  }

  def facilitiesXml: Future[Either[String, xml.Elem]] = {
    val res: Future[Either[Throwable, xml.Elem]] = Http((facilitiesSvc) OK as.xml.Elem).either
    for(exc <- res.left)
      yield "Can't connect to facilities service: \n" +
        exc.getMessage
  }

结果是:

Left(Can't connect to facilities service: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.)

上游API不会发回字符集,而在检索它时,Dispatch会在XML开始之前用字节顺序标记向其显示: <?xml version="1.0" encoding="utf-8"?>

我可以看到早期版本的Dispatch通过以下方式解决了此问题:

new Http apply(url(uri.toString).copy(defaultCharset = "iso-8859-1") as_str)

但是,我目前看不到使Dispatch 0.10起作用的方法。 有人对此提示设置字符集有任何提示,以便我可以解析返回的内容吗?

  ask by futurechimp translate from so

本文未有回复,本站智能推荐:

1回复

使用Databinder-Dispatch获取302 http重定向位置

使用databinder-dispatch 0.8.3我试图从302 http响应中获取重定向url,但是我得到以下异常: 这是我尝试过的一些帮助 : 我错过了什么? 一如既往,先谢谢。
1回复

正确的Mvn版本用于dispatch.databinder.net

根据该网站 ,库dispatch.databinder.net的最新版本是0.9.5。 什么是正确的mvn依赖关系? 要么 或者是其他东西? 以及一般如何找到?
1回复

Scala Dispatch Databinder库抛出java.nio.BufferUnderflowException

我正在Scala中将Dispatch Databinder库用于Http。 我有这种方法。 使用某些网址,例如http://bae.cf.huffingtonpost.com ,我得到了java.nio.BufferUnderflowException 。 有什么想法吗?
2回复

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

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

使用scala中的dispatch访问Rdio oauth API时出错

我正在尝试使用scala dispatch来访问Rdio API,如下所示: 我收到错误403。 怎么了? 我确信我的钥匙是正确的。
1回复

调度使用简单

我将要建立一个愚蠢的Play / scala应用,其唯一的工作就是在收到呼叫后立即进行一些http呼叫 接着 现在,对于第二部分(注释的部分),我考虑了使用Dispatch 。 我已经阅读了文档,但是我不能仅仅弄清楚如何使用Promises等等。 如果有人可以指出一些
1回复

使用Dispatch在Scala中为HTTP POST设置cookie

我似乎无法使用Dispatch设置Cookie。 服务器重新发送一个新的会话ID,这表示我尝试发送的会话ID未正确发送。 这是代码: 这是使用最新版本的Dispatch。 我正在尝试学习Scala,而我唯一不知道怎么做的就是在将它作为请求发送之前,检查EstablishmentPo
2回复

如何在lift项目中使用dispatch.json

我很困惑如何在调度和提升中组合json库来解析我的json响应。 我显然是斯卡拉新手。 我写了这段代码: 现在我被困在如何解析twitter json响应 我试过使用JsonParser: 但得到了这个错误: 我不确定,无法弄清楚下一步要做什么来迭代数据
1回复

使用Dispatch执行简单的HTTP GET

以下是浏览器中的有效查询(例如Firefox): 产生一个JSON文档: 我正在尝试使用Dispatch 0.9.4执行此查询。 这是一个build.sbt : 从sbt console ,我执行以下操作: 但承诺总是以下列错误完成: 那么我做错了什么?
1回复

如何使用Dispatch解析JSON请求?

我正在学习Scala,并试图了解特征是如何工作的(特别是在Dispatch库中)。 我有这样的事情: 不幸的是,它抱怨>#未在dispatch.Request中注册。 在dispatch.liftjson中描述了这个特征,并且我的假设是我应该只需要导入该特征(应该覆盖它)以