利用Jsoup向spring mvc接口发送post请求,获取json数据

JAVA开发 workingTime 23℃ 0评论

场景介绍:在业务拆分为多模块的场景中,某业务平台需要向支付平台发送一个支付请求,改支付接口是一个post请求,content-type:application/json;charset=UTF-8,请求参数为json

接口controller代码示例如下:


@CrossOrigin
@RestController
@RequestMapping({ "/api/v1/unipay" })
@Api(value = "booking", description = "booking相关API")
public class PayController {
    @RequestMapping(value = "/pay", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
    @ApiOperation(value = "支付", notes = "支付", tags = { "pay", })
    public AppResult<String> unipay(HttpServletRequest request, @RequestBody PayDataParam payDataParam) {
        // 付款业务逻辑
        ReturnWrapper<>(result).success("OK");
    }
}

利用jsoup发起post请求,代码如下:


public static Document postJsonConnect(String url , String data) throws IOException {
    if (!StringUtils.isEmpty(url) && !StringUtils.isEmpty(data)){
        // 连接服务器
        Connection connection = Jsoup.connect(url).ignoreContentType(true);
        // 设置请求超时时间 毫秒为单位
        connection.timeout(10000);
        // 请求方式
        connection.method(Connection.Method.POST);
        // 请求的参数 json
        connection.requestBody(data);
        connection.header("Content-Type" , "application/json;charset=UTF-8");
        connection.header("accept" , "application/json, text/plain, */*");
        // 发起请求
        return connection.execute().parse();
    }
    return null;
}

为什么我要用jsonp而不用原生的网络请求,或者其他的框架呢?推荐看一下我的视频:《谁说JAVA不能做爬虫》

现在我们写一个单元测试,来测试一下代码:


@Test
public void postTest() throws IOException {
    String url = "http://127.0.0.1:7777/api/v1/unipay/pay";

    PayDataParam payDataParam = new PayDataParam();
    payDataParam.setOrderNum("123333");
    // 将参数转成json
    String requestData = JSON.toJSONString(payDataParam);

    String result = WebConnectionUtil.getJsonConnect(url , requestData).text();
}

最后,以上代码需要引入的jar包


<!-- jsoup get post请求 -->
<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.11.2</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.37</version>
</dependency>

转载请注明:R&M » 利用Jsoup向spring mvc接口发送post请求,获取json数据

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

联系我:rm@rmworking.com