springmvc restTemplate 415错误

小弟这2天在一个项目中需要调用别的项目接口。我使用的是spring中的restTemplate方法。
其中相关代码如下:

          MultiValueMap<String, String> uriVariables = new LinkedMultiValueMap<String, String>();
                uriVariables.add("message", JSONObject.fromObject(msg).toString());
                uriVariables.add("userId", police.getUserId());
                System.out.println("uriVariables=" + uriVariables);
                String mqttClient = restTemplate.postForObject(
                        "http://192.168.1.102:8080/base/mqtt/insertMqttMessage.do", 
                        null, String.class, uriVariables);

被调用的方法如下:

     @RequestMapping(value = "/mqtt/insertMqttMessage.do", method = RequestMethod.POST, 
            consumes="application/json;charset=utf-8")
    @ResponseBody
    public String insertMQTTMessage(HttpServletRequest request,
            HttpServletResponse response, @RequestBody MultiValueMap<String, String> uriVariables) 
                    throws Exception {
        Map<String, Object> result = new HashMap<String, Object>();
        System.out.println("进入MQTT接口  uriVariables=" + uriVariables);
        return "success";
}

在测试过程中,因为是在不同的项目中,所以我使用的是map传递参数。接受也是。
在当前情况下调用会报**415 Unsupported Media Type**错误。当我把参数之前的**@RequestBody**删掉时,不报错,但是打印出来的参数为空。当把接受参数改成一个具有相应字段的javabean时,也是报415错误。
纠结了一天没找到解决办法,求高手帮忙下,谢谢。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问