resttemplate几种格式传参方式

1. form-data 格式 : 以 HttpEntity< MultiValueMap<String, Object>>形式传过去

 HttpHeaders headers = new HttpHeaders();
        HttpMethod method = HttpMethod.POST;
            // 设置以表单的方式提交
        headers.add("Content-Type",MediaType.MULTIPART_FORM_DATA_VALUE);
        headers.add("token","aaaaaa");
            //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>();
        paramMap.add("status","aaa");
        paramMap.add("compere","aa");
        paramMap.add("meetingSummary",ccpcGroupZzsh.getMeetingSummary());
        paramMap.add("token",bhToken);
        HttpEntity< MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(paramMap, headers);
            //执行HTTP请求
        String url="http://"+host+"/bhccpc/zzsh/newCcpcGroupZzsh";
        ResponseEntity<String> response = restTemplate.exchange(url, method, requestEntity,String.class );

json格式: 以 HttpEntity json字符串形式传过去

  HttpHeaders headers = new HttpHeaders();
        HttpMethod method = HttpMethod.POST;
        // 设置以json的方式提交
        headers.add("Content-Type", MediaType.APPLICATION_JSON_VALUE);
        headers.add("token",loginUser.getBhToken());
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        //将请求头部和参数合成一个请求
       Map paramMap = new HashMap<>();
        paramMap.put("page",String.valueOf(pageParams.getCurrent()));
        paramMap.put("rows",String.valueOf(pageParams.getSize()));
        paramMap.put("userId",String.valueOf(memberId));
        JSONObject jsonObj = new JSONObject(paramMap);
        HttpEntity<String> requestEntity = new HttpEntity<>(jsonObj.toString(), headers);
        //执行HTTP请求,将返回的结构使用ResultVO类格式化
        String url="http://"+host+"/bhccpc/partyfee/detailMemberByPage";
        String response = restTemplate.postForObject(url,  requestEntity,String.class );

文件参数:

 //获取登录人
        CurrentUser loginUser = loginUserService.findLoginUser();
        String token = loginUser.getBhToken();
        Long userId = loginUser.getUserId();
        BizAssert.isTrue(loginUser != null, "请先登录!");

        String currentTimeStr = String.valueOf(System.currentTimeMillis());
        //组织生活会
        HttpHeaders headers = new HttpHeaders();
        HttpMethod method = HttpMethod.POST;
        // 以表单的方式提交

        headers.add("Content-Type",MediaType.MULTIPART_FORM_DATA_VALUE);
        headers.add("token", token);
        //将请求头部和参数合成一个请求
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>();
        try {
            byte[] bytes  = file.getBytes();
            ByteArrayResource fileAsResource = new ByteArrayResource(bytes) {
                @Override
                public String getFilename() {
                    return file.getOriginalFilename();
                }

                @Override
                public long contentLength() {
                    return file.getSize();
                }
            };
            paramMap.add("file",fileAsResource);
        } catch (IOException e) {
            e.printStackTrace();
            throw  new BizException("上传失败");
        }

        paramMap.add("token",token);
        HttpEntity< MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(paramMap, headers);
        //执行HTTP请求,将返回的结构使用ResultVO类格式化
        String url="http://"+host+"/bhccpc/file/savefile";
        ResponseEntity<String> result = restTemplate.exchange(url, method, requestEntity,String.class );

        return R.success(result);

x-www-form-urlencoded

 public void  aaa() {
           url1="http://127.0.0.1:8080/getcityqoe" ;
                Map<String, String> headerMap = new HashMap<String, String>();
                headerMap.put("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
            
            //参数
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("begintime", "2023-12-06 15:10"));
                params.add(new BasicNameValuePair("endtime", "2023-12-06 16:10"));
                params.add(new BasicNameValuePair("city","1"));
                params.add(new BasicNameValuePair("method", "getcityqoe"));

			RequestConfig reqConfig = RequestConfig.custom().setConnectTimeout(timeout).setSocketTimeout(timeout).build();
					HttpResponse response=null;
					HttpClient httpclient = HttpClients.custom().setRetryHandler(myRetryHandler).build();
					try {
						HttpPost post = new HttpPost(url);
						// 将JSON进行UTF-8编码,以便传输中文
			
						if(!headMap.isEmpty()){
							for (Map.Entry<String, String> entry : headMap.entrySet()) {
								post.setHeader(entry.getKey(), entry.getValue());
							}
						}
						post.setEntity(new UrlEncodedFormEntity(params , "UTF-8"));
						post.setConfig(reqConfig);
						response=httpclient.execute(post);
						System.out.println(response);
						return EntityUtils.toString(response.getEntity(),"UTF-8");
					} catch (Exception e) {
						e.printStackTrace();
						return null;
					}finally{
						httpclient.getConnectionManager().shutdown();
					}
}
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值