Scala 播放WS-Exception:java.lang.IllegalArgumentException:name包含以下禁止字符之一:=,;:\t\r\n\v\f:代理,

Scala 播放WS-Exception:java.lang.IllegalArgumentException:name包含以下禁止字符之一:=,;:\t\r\n\v\f:代理,,scala,playframework,netty,playframework-2.2,Scala,Playframework,Netty,Playframework 2.2,我正在播放2.2.x,我有以下代码片段: def call(server: String, api: String) = { import play.api.libs.ws._ import scala.concurrent.Await import scala.concurrent.duration._ val request = WS.url(server + api) Await.result(request.get(), 1 minute) } 我得到这个错误: j

我正在播放2.2.x,我有以下代码片段:

def call(server: String, api: String) = {
  import play.api.libs.ws._
  import scala.concurrent.Await
  import scala.concurrent.duration._
  val request = WS.url(server + api)
  Await.result(request.get(), 1 minute)
}
我得到这个错误:

java.lang.IllegalArgumentException: name contains one of the following prohibited characters: =,;: \t\r\n\v\f: Agent,
        at org.jboss.netty.handler.codec.http.HttpCodecUtil.validateHeaderName(HttpCodecUtil.java:38)
        at org.jboss.netty.handler.codec.http.HttpHeaders.validateHeaderName(HttpHeaders.java:834)
        at org.jboss.netty.handler.codec.http.HttpHeaders.addHeader(HttpHeaders.java:838)
        at org.jboss.netty.handler.codec.http.DefaultHttpMessage.addHeader(DefaultHttpMessage.java:44)
        at org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeaders(HttpMessageDecoder.java:496)
        at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:193)
        at org.jboss.netty.handler.codec.http.HttpClientCodec$Decoder.decode(HttpClientCodec.java:143)
        at org.jboss.netty.handler.codec.http.HttpClientCodec$Decoder.decode(HttpClientCodec.java:127)
        at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500)
        at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
        at org.jboss.netty.handler.codec.http.HttpClientCodec.handleUpstream(HttpClientCodec.java:92)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
        at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
        at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
        at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
我做错了什么?
server+api
没有任何特殊字符

也不知道为什么在Scala中这样做会如此冗长-为什么API需要我导入3个东西来进行一个简单的
GET
调用

编辑:
验证了当服务器处于
https://example.com
但当它是http:
http://example.com

堆栈跟踪表明您的服务器(example.com)正在使用非法HTTP头进行响应。 也就是说,它将
代理
作为头名称发送回。注意文本中的逗号

至于scala中为何如此冗长的问题——您的代码的问题是,它试图将play framework的web服务API的异步特性与同步
调用
函数相适应。这不是您通常使用Scala的
Future
api的方式