springboot使用Map接收请求参数 @RequestBody 使用RestTemplate发送http get和post源码

模拟一个请求 

SpringCloud

@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)。get或post都可以。 

    //在MongoDB中创建预警信息,从别的接口调用
    public R createMsg(Map<String, Object> param) {
		//logger.info("param:"+param.toString());
		return R.data(sendPostRequest(plantServerBaseUrl+"/createMsg",param).toString());
	}

/** 发送http post请求
	 *
	 * @param url 请求地址
	 * @param param 请求体Body中json
	 * @return
	 */
	public String sendPostRequest(String url, Map<String, Object> param) {
		HttpHeaders headers = new HttpHeaders();
		headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
		//HttpEntity<String> entity = new HttpEntity<String>(headers);
		HttpEntity<Map<String, Object>> entity = new HttpEntity<>(param, headers);
		RestTemplate restTemplate = new RestTemplate();
		String strBody=restTemplate.exchange(url, HttpMethod.POST, entity,String.class).getBody();
		return JSONObject.parseObject(strBody,Object.class).toString();
	}

	public String sendGetRequest(String url, Map<String, Object> param) {
		HttpHeaders headers = new HttpHeaders();
		headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
		//HttpEntity<String> entity = new HttpEntity<String>(headers);
		HttpEntity<Map<String, Object>> entity = new HttpEntity<>(param, headers);
		RestTemplate restTemplate = new RestTemplate();
		String strBody=restTemplate.exchange(url, HttpMethod.GET, entity,String.class).getBody();
		return JSONObject.parseObject(strBody,Object.class).toString();
	}

猜你喜欢

转载自blog.csdn.net/chenhao0568/article/details/114320351