java接收回调通知实现方式
Posted Biubbbbbbbbiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java接收回调通知实现方式相关的知识,希望对你有一定的参考价值。
演示POST方式发送通知信息,请求参数位于request中的body中
记录一次回调参数的对接,写起来感觉很简单,但是表达就感觉特别难
文章内容仅供参考,内容有误请及时指出纠正
回调通知示例
第三方回调通知参数,我们这边需要提供一个url,用来接收这个参数。
这次的回调参数位于request中的body中
提供的地址需要是外网地址
回调地址:http://url/test/saveNotify
controller层,进行接收回调参数
程序执行完后必须打印输出“success”(不包含引号)
package com...controller.test;
import com.service.jumi.JuMiAiService;
import com.web.BaseController;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.InputStreamReader;
@RestController
@RequestMapping(value = "/test", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class JuMiController extends BaseController{
@Autowired
private TestService testService;
@RequestMapping(value = "saveNotify", method = RequestMethod.POST)
@ApiOperation("回调参数测试")
public String saveNotify(HttpServletRequest request){
try {
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
String line = null;
StringBuilder sb = new StringBuilder();
while((line = br.readLine())!=null){
sb.append(line);
}
String reqBody = sb.toString();
testService.saveNotify(reqBody);
}catch (Exception e){
e.printStackTrace();
}
return "success";
}
}
service层,处理回调参数
reqBody便是第三方的回调通知参数,获取到这些参数之后便可进行其他操作处理
package com...service.test;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
@Service
public class TestService {
private Logger logger = LoggerFactory.getLogger(TestService.class);
@Autowired
StringRedisTemplate redisTemplate;
/**
*
* @param reqBody
*/
public void saveNotify(String reqBody){
logger.info("reqBody="+reqBody);
com.alibaba.fastjson.JSONObject resObj = JSONObject.parseObject(reqBody);
}
}
以上是关于java接收回调通知实现方式的主要内容,如果未能解决你的问题,请参考以下文章