scalaj-http获取的多个参数

时间:2016-07-25 23:40:16

标签: scala

我有一个RESTful API调用,如下所示:

http://xxxxx:9000/api/parameter/value?ecosystem_name=streaming_pipeline&ecosystem_key_name=kafka_brokers

当我通过postman或Swagger使用它时,哪个工作正常。当我在上面运行scalaj-http时:

val result = Http("http://xxxxxx:9000/parameter/value").params(Map(("ecosystem_name", "streaming_pipeline"), ("ecosystem_key_name", "kafka_brokers"))).asString

我得到了一个未找到的回复。当我只使用一个参数时,这可以与其他调用一起使用:

val result = Http("http://xxxxxx:9000/api/schemas/name").param("schema_name", schemaName).asString

为什么当我尝试使用多个参数时似乎失败了呢?我尝试过使用.param(...)。param(...)而不是.params也没有运气。

根据以下内容进行编辑:

scala> val result = Http("http://xxxxx:9000/parameter/value").params(Map("ecosystem_name" -> "streaming_pipeline", "ecosystem_key_name" -> "kafka_brokers")).asString
result: scalaj.http.HttpResponse[String] = HttpResponse(,404,Map(Content-Length -> Vector(0), Date -> Vector(Tue, 26 Jul 2016 17:53:49 GMT), Server -> Vector(Apache-Coyote/1.1), Status -> Vector(HTTP/1.1 404 Not Found)))

1 个答案:

答案 0 :(得分:1)

我认为问题在于您没有正确初始化 owes.setAmountExtra(cursor.getString(1)); 函数的Map[String,String]参数。初始化Map的正确方法是:

params

所以你的获取请求看起来像这样:

val myMap = Map(key -> value, key2 -> value2)