如何请求别人的接口(远程调用接口)

httpclient作用

在java代码中,发送Http请求。通常用来实现远程接口调用。

pom依赖

    <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>3.1</version>
    </dependency>

下面是我请求别人的接口的代码

//部分包
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.httpclient.HttpClient;
import net.sf.json.JSONObject;
public QueryResponseResult post(String lineName, String dataTime) {
        HttpClient httpclient = new HttpClient();
        PostMethod httpPost = new PostMethod("http://ip地址:端口/computer");
        if (lineName != null && dataTime != null) {
        	//设置参数
            NameValuePair[] param = {new NameValuePair("lineName", lineName), new NameValuePair("dataTime", dataTime)};
            //解决中文乱码
            httpPost.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");
            httpPost.setRequestBody(param);
        }
        try {
        	//发送请求
            httpclient.executeMethod(httpPost);
            InputStream stream = httpPost.getResponseBodyAsStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(stream));
            StringBuilder stringBuilder = new StringBuilder();
            String str1 = "";
            while ((str1 = br.readLine()) != null) {
                stringBuilder.append(str1);
            }
            String sb = stringBuilder.toString();
            //按照utf-8格式输出响应体
            String result = new String(sb.getBytes(), StandardCharsets.UTF_8);
            JSONObject fromObject = JSONObject.fromObject(result);
            Object code = fromObject.get("code");
            if ("500".equals(code.toString())) {
                return new QueryResponseResult(CommonCode.ERROR, null);
            } else if ("200".equals(code.toString())) {
                Object data = fromObject.get("queryResult");
                QueryResult queryResult = new QueryResult<>();
                ArrayList<Map<String, Object>> list = new ArrayList<>();
                Map<String, Object> map = new HashMap<>();
                map.put("data", data);
                list.add(map);
                queryResult.setList(list);
                return new QueryResponseResult(CommonCode.SUCCESS, queryResult);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            httpPost.releaseConnection();
        }
        return null;
    }

附上返回数据

{
  "code": "200",
  "msg": "xxxxxxx",
  "data": {
    "dataTime": "2019-12-06 11:15:00",
    "desc": "计算结果收敛",
    "pflowLineDataList": [
      {
        "lineName": "xxxx",
        "measuredActive": 0,
        "measuredReactive": 0,
        "calculateActive": -15.6,
        "calculateReactive": 44.1
      }
    ]
  }
}

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值