Java调用http接口 post get(包含get请求参数如何配置在yml文件中)

HttpUtils 工具类

package com.yl.station.common.utils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

import java.io.UnsupportedEncodingException;
import java.util.Map;

public class HttpUtils {

    private static final Logger LOGGER = LoggerFactory.getLogger(HttpUtils.class);

    public static String post(String data, String url) {
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity<String> request = new HttpEntity<>(data, headers);
        ResponseEntity<String> postForEntity = restTemplate.postForEntity(url, request, String.class);
        String body = postForEntity.getBody();
        String s = null;
        try {
            s = new String(body.getBytes("iso-8859-1"), "utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return s;
    }

    public static String get(Map<String, Object> paramMap,String url) {
        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class, paramMap);
        String body = responseEntity.getBody();
        String s = null;
        try {
            s = new String(body.getBytes("iso-8859-1"), "utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return s;
    }

}

实现调用

@Value("${login.postLoginUrl}")
private String postLoginUrl;
@Value("${login.getLoginUrl}")
private String getLoginUrl;

//post方式调用接口,传入接口地址
public String postLogin(String loginUrl) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("username", "root");
        jsonObject.put("password", "123456");
        String msg = HttpUtils.post(jsonObject.toJSONString(), postLoginUrl);
        return msg;
    }
//get方式调用接口,传入接口地址
public String getLogin(String loginUrl) {
        Map<String, Object> paramMap = new HashMap<>();
        //type(操作类型 1:新增  2:查询  3:修改  4:删除)
        paramMap.put("username", "root");
        //key(数据库操作授权密钥)
        paramMap.put("password", "123456");
        String msg = HttpUtils.get(paramMap,getLoginUrl);
        return msg;
    }

配置文件yml中写填写对接地址便于后期修改
因为get请求比较特殊,参数需要跟在url后面,所以写法也比较特别, { }中的参数对应paramMap中key,自动通过key取值value,传参成功

login:
  postLoginUrl: http://123.123.123.123:8080/user/login
  getLoginUrl: http://123.123.123.123:8080/user/login?username={username}&password={password}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值