详解使用Spring的restTemplete进行Http请求

2025-05-29 0 23

最近学习Spring框架,本文介绍了使用Spring的restTemplete进行Http请求,留个笔记

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67
/*

* rest templete

*/

public class RestTemplateTest {

//private static String url = "http://10.2.1.46:8080";

private static String url = "http://127.0.0.1:8080/test";

private static String autoDeploy = "/api/ddd/manages/yyy/1111";

public static void main(String[] args) throws UnsupportedEncodingException {

JSONObject token1 = LoginTest.login(url);

JSONObject token = new JSONObject();

token.put("token", token1.getString("token"));

token.put("userName", "chenchen.ming@56qq.com");

String name = "明辰晨";

token.put("name", URLEncoder.encode(name, "UTF-8"));

String jsonBody = DmsAutoDeployTest.dmsAutoDeployData();

autoDeploy(jsonBody,token.toJSONString());

}

/*

* 主要的post方法

*/

public static void autoDeploy(String json,String token){

String autoDeployUrl = url + autoDeploy;

RestTemplate restTemplate = new RestTemplate();

HttpHeaders headers = new HttpHeaders();

//一定要设置好ContentType为utf8否则会乱码

MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");

headers.setContentType(type);

headers.add("Accept", MediaType.APPLICATION_JSON.toString());

headers.add("Authentication", token);//设置自定义session header

HttpEntity<String> formEntity = new HttpEntity<String>(json, headers);

Map<String, Object> parameterMap = new HashMap<>();

//entity = Header,uriVariables = Parameters;

restTemplate.postForObject(autoDeployUrl, formEntity, String.class, parameterMap);

}

/*

* 测试

*/

public static void test4(){

JSONObject response = null;

Map<String,Object> param = new HashMap<>();

param.put("ming", "chyen");

String json = "haha";

try {

response = RestUtil.post("http://127.0.0.1:8080/cloud-master/api/release/manages/detail", JSONObject.class,null,null,json);

} catch (Exception e) {

e.printStackTrace();

}

System.out.println(response);

}

/**

* 测试

*/

public static void test(){

RestTemplate restTemplate = new RestTemplate();

Map<String, Object> parameterMap = new HashMap<>();

restTemplate.getForObject("url", String.class,parameterMap);

//factory.createRequest(uri, httpMethod)

}

}

Util

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59
/**

* 使用Spring的restTemplate进行http请求

* @author Mingchenchen

*

*/

public class RestUtil {

private static RestTemplate restTemplate = new RestTemplate();

/**

* Get方法

*

* @param url:地址

* @param returnClassName:返回对象类型,如:String.class

* @param parameters:parameter参数

* @return

*/

public static <T> T get(String url, Class<T> returnClassName, Map<String, Object> parameters){

if (parameters == null) {

return restTemplate.getForObject(url, returnClassName);

}

return restTemplate.getForObject(url, returnClassName, parameters);

}

/**

* post请求,包含了路径,返回类型,Header,Parameter

*

* @param url:地址

* @param returnClassName:返回对象类型,如:String.class

* @param inputHeader

* @param inputParameter

* @param jsonBody

* @return

*/

public static <T> T post(String url,Class<T> returnClassName,Map<String,Object> inputHeader,Map<String,Object> inputParameter,String jsonBody){

//请求Header

HttpHeaders httpHeaders = new HttpHeaders();

//拼接Header

if (inputHeader != null) {

Set<String> keys = inputHeader.keySet();

for (Iterator<String> i = keys.iterator(); i.hasNext();) {

String key = (String) i.next();

httpHeaders.add(key, inputHeader.get(key).toString());

}

}

//设置请求的类型及编码

MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");

httpHeaders.setContentType(type);

httpHeaders.add("Accept", "application/json");

List<MediaType> acceptableMediaTypes = new ArrayList<>();

acceptableMediaTypes.add(MediaType.ALL);

httpHeaders.setAccept(acceptableMediaTypes);

HttpEntity<String> formEntity = new HttpEntity<String>(jsonBody, httpHeaders);

if (inputParameter==null) {

return restTemplate.postForObject(url, formEntity, returnClassName);

}

return restTemplate.postForObject(url, formEntity, returnClassName, inputParameter);

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:http://blog.csdn.net/jinzhencs/article/details/51981960

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 详解使用Spring的restTemplete进行Http请求 https://www.kuaiidc.com/115922.html

相关文章

发表评论
暂无评论