http请求传递不同参数

首先 远程调用的方式有两种,一种是调用RPC服务,这样的话很简单,只需要这么几步就可以了

一 导入RPC服务需要的maven依赖

二封装成RPC服务具备的参数,然后直接调用即可,参数传递都为一般类型,就是所谓的方法参数

第二种就是http请求,其实相对来说这个更简单,不用任何的依赖和封装参数,但是同时也出现了较多的参数类型,

1)http请求参数存在body中

创建postMethod,使用setRequestEntity将参数存于body中

String result = null;
try {
    PostMethod postMethod = new PostMethod(url);
    postMethod.setRequestEntity(new StringRequestEntity(clientInfo, CONTENT_TYPE, CHARSET));
    postMethod.addRequestHeader("Content-Type", "application/json");
    postMethod.addRequestHeader("Authorization", tAuth2HeaderGenerator.getAuthorizationHeader(uid));

    result = httpClient.executeMethod(url, postMethod, clientInfo, CHARSET);
} catch (Exception e) {
    log.warn("xxxxx fail!", e);
}
return JSONObject.parseObject(result);

2)http请求参数是List 类型 

比如一个接口从前端获取一个List类型的参数,使用 @RequestParam获取 

前端输入参数1,2,3

get请求就可以把参数直接拼在url中,如果是List参数拼出来的效果应该是xxx.json?paramA = 1 ¶mA=2 ¶mA=3

 

String response = httpClient.get(finalUrl, header);
StringUtils.join(getPlayBackParam.getQualityLabels(), "¶mA="));

 

这个借鉴于网上一个很好的做法

String reqURL = String.format("127.0.0.1:9510/v1/users/list?userIds=%s", StringUtils.join(userIdList, "&userIds="));

 

 

你可能感兴趣的:(Java)