SpringCloud 消费方请求对象到提供服务方出现org.springframework.web.client.HttpClientErrorException: 415 null的解决

背景:
实现一个列表保存的需求,消费者前端页面将修改后的数据以JSON格式上传到消费者后端封装为实体类,消费者后端再通过restTemplate对象将这个实体类请求到服务者进行保存。
然而出现错误 org.springframework.web.client.HttpClientErrorException: 415 null
原因:
后来百度了下,原因是消费方没有设置Media类型,我们要知道的是,restTemplate组件是基于http协议来实现请求的,而请求中必定是要带有一些协议头的;因此一般情况下我们不需要特别声明协议头,但在传输json数据时,则需要声明协议头。
解决:
在消费方设置Media类型和协议头。
消费方代码内容如下:

	    /**
	     * 保存修改信息
	     * @param matchsInfoObj
	     * @return
	     */
	    @PostMapping("/matchSave")
	    public String matchSave(MatchsInfo matchsInfoObj) {
	    	//创建HttpHeaders对象。
	    	HttpHeaders httpHeadersObj = new HttpHeaders();
	    	//设置内容类型
	    	httpHeadersObj.setContentType(MediaType.APPLICATION_JSON);
	    	//创建HttpEntity对象
	    	HttpEntity<MatchsInfo> param = new HttpEntity<MatchsInfo>(matchsInfoObj,httpHeadersObj);
	    	//发送请求
	    restTemplateObj.put("http://PROVIDER-PARAM/matchSave",param);
	        return "matchofokhttp#matchInfoData";
	    }

提供方代码内容如下:

	    /**
	     * 保存修改信息
	     * @param matchsInfoObj
	     */
	    @PutMapping("/matchSave")
	    public void matchSave(@RequestBody MatchsInfo matchsInfoObj) {
	    	System.out.println("提供方:"+matchsInfoObj);
	    }

参考:https://blog.csdn.net/qq_16257945/article/details/104794593
参考:https://ask.csdn.net/questions/775401

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值