以form表单的形式传递参数给rest接口
2016-09-23 18:07
501 查看
/** * 以传统form表单的方式提交参数(并不是以json格式提交) * * @param url 提交的rest url * @param paramMap body参数 * @param responseType 返回类型 * @param <T> * @return */ public <T> T postForFormObject(String url, Map<String, Object> paramMap, Class<T> responseType, Object... uriVariables) { long astart = System.currentTimeMillis(); LinkedMultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>(); T result = null; for (Map.Entry<String, Object> entry : paramMap.entrySet()) { map.add(entry.getKey(), String.valueOf(entry.getValue())); logger.info("key: {} value:{}",entry.getKey(),String.valueOf(entry.getValue())); } HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED); HttpEntity<LinkedMultiValueMap<String, String>> httpEntity = new HttpEntity<LinkedMultiValueMap<String, String>>(map, httpHeaders); try { if (null != uriVariables) { result = restTemplate.postForObject(url, httpEntity, responseType,uriVariables); }else{ result = restTemplate.postForObject(url, httpEntity, responseType); } }catch (Exception e){ logger.error("", e); } finally { long aend = System.currentTimeMillis(); logger.debug("url: {} invoke restful time consuming:{}", url, aend - astart); log(url + "/" + (StringUtils.isEmpty(uriVariables) ? "" : JsonUtil.writeObjectValueAsString(uriVariables)), null, result); } return result; }有时候调用rest接口的时候,接口接收的参数并不是以json格式接收,而是以传统表单数据的格式接收,这时候他这contetentType就不是json,这时候需要通过封装一个HttpEntity再组装好相关参数提交httpEntity,参数的组装用的是LinkedMultiValueMap 貌似HttpEntity不接收value是object,所以String.valueOf将value值转成了String,这样就可以给rest接口传递表单的数据了
相关文章推荐
- 参数传递的四种形式----- URL,超链接,js,form表单
- 参数传递的四种形式----- URL,超链接,js,form表单
- 四种参数传递的形式——URL,超链接,js,form表单
- ------------参数传递的四种形式----- URL,超链接,js,form表单
- 参数传递的四种形式----- URL,超链接,js,form表单
- 四种参数传递的形式――URL,超链接,js,form表单
- ***四种参数传递的形式——URL,超链接,js,form表单
- 参数传递的四种形式----- URL,超链接,js,form表单
- 以form表单的形式传递参数给rest接口
- 四种参数传递的形式——URL,超链接,js,form表单
- spring参数校验,form表单形式,以及http接口形式
- 四种参数传递的形式——URL,超链接,js,form表单
- 四种参数传递的形式――URL,超链接,js,form表单
- 非form表单形式提交,如何从request中获取参数?
- 解决multipart/form-data表单中传递参数问题(动态更改表单提交URL)
- 如何封装form表单中富文本编辑器bootstrap wysiwyg到jfinal传递参数
- Drupal中关于表单form的drupal_get_form方法如何传递自定义参数
- Form表单需要使用Post传递url中的参数
- jquery ajax方式提交form并传递其他非表单中的参数,报表导出并自动下载,jquery ajax提交
- form表单不设置method属性后果很严重,参数无法传递,第二次了搞了半天才找出原因