全部产品
云市场

CSB 支持同名多参数

更新时间:2019-10-15 10:08:21

HTTP 请求需要支持同名多参数,实际效果为数组,如果后端也是 HTTP 类型,须保持该形态传递到后端服务。CSB 通过 SDK 和 Broker 实现对同名多参数的支持。

例如:CSB 接收到形如key=value1&key=value2的请求时,会作为key = [ value1, value2 ]处理,如果后端服务也是 HTTP 类型时,传递方式遵循后端接口定义,缺省保持为key=value1&key=value2

前提条件

使用 1.1.5.5 版本的 http-client

代码示例

  1. HttpParameters.Builder builder = new HttpParameters.Builder();
  2. builder.requestURL("http://localhost:18086/CSB") // 设置请求的URL
  3. .api("http2http1") // 设置服务名
  4. .version("1.0.0") // 设置版本号
  5. .method("post") // 设置调用方式, get/post
  6. .accessKey("ak").secretKey("sk"); // 设置accessKey 和 设置secretKey
  7. try {
  8. // 设置请求参数
  9. builder.putParamsMap("name", "name1中文sdfs sdlkfsadfksdkfds").putParamsMap("times", "3")
  10. .putParamsMap("str2", "31", "32", "33") //设置str2的数组入参
  11. .putParamsMap("str3", Arrays.asList("aa", "bb", "cc")); //设置str3的List入参
  12. HttpReturn ret = HttpCaller.invokeReturn(builder.build());
  13. System.out.println("------- ret=" + JSON.toJSONString(ret));
  14. } catch (HttpCallerException e) {
  15. e.printStackTrace(System.out);
  16. }

HTTP 消息示例

同名多参数 HTTP 请求示例