Java postForObject发送方和@RequestMapping接收方,分别修改代码以实现正确接收和发送

发送方代码:

String bizContent = "要发送内容";
String url = appPath + "/receiveData.action";
boolean ecnFlag = true; 
Exception ecnException = null;
Map responseMap = null;
try {
	HttpHeaders httpHeaders = new HttpHeaders();
	httpHeaders.setContentType(MediaType.APPLICATION_JSON);
	responseMap = restTemplate.postForObject(url, new HttpEntity<>(bizContent.getBytes("UTF-8"), httpHeaders), Map.class);
	} 

接收方代码:

@RequestMapping("receiveData.action")
    public void receiveData(String jsonStr) {
        try {
            jsonStr = "接收到内容";
        } 
    }

1、只改发送方:为了确保接收方能够正确接收到 jsonStr 参数,你应该修改发送方的代码以正确地包含该参数在请求中。在你当前的发送方代码中,看起来你正在以 JSON 形式将数据放入请求体中,但参数名未被指定。为了修复这个问题,你应该按照以下方式修改发送方代码:


try {
    HttpHeaders httpHeaders = new HttpHeaders();
    httpHeaders.setContentType(MediaType.APPLICATION_JSON);
    // 修改请求,包含参数名
    MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
    map.add("jsonStr", bizContent);
    responseMap = restTemplate.postForObject(url, new HttpEntity<>(map, httpHeaders), Map.class);
} 

2、只改接收方:如果不改变发送方代码,你可以尝试在接收方代码中修改@RequestMapping注解,以匹配发送方请求的方式。在你提供的接收方代码中,它期望从请求中获取名为 jsonStr 的参数。如果发送方代码没有明确指定参数名,你可以在接收方代码中尝试更改@RequestMapping注解,使用consumes属性来指定请求的Content-Type。

@RequestMapping(value = "receiveData.action", consumes = MediaType.APPLICATION_JSON_VALUE)
public void receiveData(@RequestBody String jsonStr) {
    try {
            jsonStr = "接收到内容";
        }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值