首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scalaj-http Get上的多个参数

scalaj-http Get上的多个参数
EN

Stack Overflow用户
提问于 2016-07-26 07:40:16
回答 1查看 1.1K关注 0票数 0

我有一个RESTful应用编程接口调用,如下所示:

代码语言:javascript
复制
http://xxxxx:9000/api/parameter/value?ecosystem_name=streaming_pipeline&ecosystem_key_name=kafka_brokers

当我通过邮递员或Swagger使用它时,它工作得很好。当我在上面运行scalaj-http时:

代码语言:javascript
复制
val result = Http("http://xxxxxx:9000/parameter/value").params(Map(("ecosystem_name", "streaming_pipeline"), ("ecosystem_key_name", "kafka_brokers"))).asString

我得到了一个not found响应。当我只使用一个参数时,这对其他调用也有效:

代码语言:javascript
复制
val result = Http("http://xxxxxx:9000/api/schemas/name").param("schema_name", schemaName).asString

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

编辑依据:

代码语言:javascript
复制
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)))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-26 08:04:05

我认为问题在于您没有正确地初始化params函数的Map[String,String]参数。初始化Map的正确方法是:

代码语言:javascript
复制
val myMap = Map(key -> value, key2 -> value2)

因此,您的get请求将如下所示:

代码语言:javascript
复制
val result = Http("http://xxxxxx:9000/parameter/value").params(Map("ecosystem_name"-> "streaming_pipeline", "ecosystem_key_name"-> "kafka_brokers")).asString
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38578977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档