gpt4 book ai didi

error-handling - 抛出HttpError时ServiceStack不会填充响应DTO

转载 作者:行者123 更新时间:2023-12-03 07:48:55 25 4
gpt4 key购买 nike

ServiceStack不会在WebServiceException的responseDTO属性中填充原始响应。

我正在运行下面的代码,该代码应始终返回404响应代码,并带有填充有“一些错误的请求”的TestResponse的ResponseStatus属性,但似乎还应返回原始的良好响应,其输出属性由请求的输入属性填充。但是当我查看WebServiceException responseDTO时得到null

        public TestResponse Post(Test request)
{
var response = new TestResponse() { Output = request.Input };

throw new HttpError(response, (int)HttpStatusCode.BadRequest, "Some bad request");
}

public TestResponse Get(Test request)
{
try
{
using (var client = new JsonServiceClient("http://localhost:5000"))
{
var response = client.Post(request);
return response;
}
}
catch (WebServiceException ex)
{

throw;
}
}

通常,我期望WebServiceException中的responseDTO属性将包含终结点的DTO,只要抛出HttpError时传递了它就可以了,但事实并非如此。我在responseDTO中仅看到默认值和每个属性的null。

最佳答案

引发异常时,仅保留ResponseStatus,您可以将任何其他信息添加到其Meta字典中。

或者,您可以return a failed HTTP Response:

public TestResponse Post(Test request)
{
var response = new TestResponse() { Output = request.Input };

base.Response.StatusCode = (int)HttpStatusCode.BadRequest;
return response;
}

关于error-handling - 抛出HttpError时ServiceStack不会填充响应DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55953065/

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