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}