java的rest异步调用_spring boot,使用AsyncRestTemplate进行异步Http调用,总是返回302...

两个web应用,WebAppA和WebAppB,WebAppA通过AsyncRestTemplate来异步调用WebAppB,调用过程中,用一个类A来互相传递数据,以Json的形式,类A如下:

public class A

{

private String str;

public A()

{

}

public String getStr()

{

return str;

}

public void setStr(String str)

{

this.str = str;

}

}

整个过程,就相当于是,WebAppA发过去一个

{

"str": "123"

}

然后WebAppB把里面的str给改了,在传回给WebAppA

{

"str": "123POST success"

}

WebAppB作为被调用者的代码是:

@RequestMapping(value = "/", method = RequestMethod.POST)

public A test_POST(@RequestBody A a)

{

a.setStr(a.getStr() + "POST success");

System.out.println("POST success WebAppB-0.0.1-SNAPSHOT.war!");

return a;

}

WebAppB我用PostMan测试过了,可以得到正确的返回的。

然后调用者WebAppA的调用代码是:

//POST

a = new A();

a.setStr("123");

MultiValueMap headers = new LinkedMultiValueMap();

headers.add("Content-Type", "application/json;charset=UTF-8");

HttpEntity httpEntity = new HttpEntity<>(headers);

AsyncRestTemplate template = new AsyncRestTemplate();

String url = "http://127.0.0.1:12001/"

//调用完后立即返回(没有阻塞)

ListenableFuture> forEntity = template.postForEntity(url, httpEntity, A.class, a);

//异步调用后的回调函数

forEntity.addCallback(new ListenableFutureCallback>()

{

//调用成功

@Override

public void onSuccess(ResponseEntity resp)

{

a = resp.getBody();

}

//调用失败

@Override

public void onFailure(Throwable t)

{

System.out.println(t.getMessage());

}

});

结果,总是会返回302.

如图:

eb008bffa1dc0a48fbb6333aa5ed8785.png

(无视url中的路径,路径肯定没有问题,我在tomcat里面配了一个根目录,上面贴的代码体现不到,为了各位看着方便,我就把截图中的给删了,路径测过的,肯定没有问题)

麻烦各位帮我看一下,大概是什么问题导致的,多谢了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值