gpt4 book ai didi

java - 当响应代码为 400 时,如何从 REST 客户端访问 apache-camel 中的有效负载?

转载 作者:行者123 更新时间:2023-12-01 19:20:29 25 4
gpt4 key购买 nike

在 Camel route ,我正在使用休息服务。对于无效输入,我收到以下带有 400 响应代码的 json 响应。但我无法访问有效负载。甚至在 Camel 身上也没有体现出来。请帮忙给出一个解决方案,当响应代码不是200时,如何访问其余的有效负载。

下面的 block 是包含 cxfrs:bean 的路由。我正在尝试处理 dotry block 中的异常,然后尝试检索处理器中的响应有效负载。但有效负载无法访问。

  <route id="_route3" streamCache="true">
<from id="_from2" uri="direct:togetcustomercategorybackend"/>
<doTry id="_doTry1">
<to id="_to3" uri="cxfrs:bean:DsGetCustomerCategoryBackEndUrl"/>
<doCatch id="_doCatch1">
<exception>java.lang.Exception</exception>
<process ref="ResponseHandler" />
</doCatch>
</doTry>
</route>

这是来自其余客户端的响应。请注意来自后端的有效负载,响应代码为 400

ID: 923
Response-Code: 400
Encoding: UTF-8
Content-Type: application/json; charset=utf-8
Headers: {connection=[keep-alive], Content-Length=[98],
content-type=[application/json; charset=utf-8],Date=[Mon, 16 Dec 2019 17:19:04 GMT],
Server=[Kestrel]}
Payload: {"error":{"errorcode":"inv.offertype","errormessage":"Invalid offertype
provided","errorinfo":""}}

使用查询参数传递请求参数:

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;


public interface DSGetCustomerCategoryApi {


@GET
@Produces(MediaType.APPLICATION_JSON)
public String DSGetCustomerCategory(
@QueryParam("OfferType") String OfferType,
@QueryParam("MSISDN") String MSISDN ,
@QueryParam("IdType") String IdType ,
@QueryParam("IdNumber") String IdNumber ,
@QueryParam("BillAverage") Double BillAverage );

}

最佳答案

当响应代码不是 200 时,这意味着您遇到了异常,并且在有效负载中获取异常主体,下面的示例可能会有所帮助:public String getException(Exception 异常) {
返回异常.getMessage();
}

关于java - 当响应代码为 400 时,如何从 REST 客户端访问 apache-camel 中的有效负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59362293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com