C# 如何从TTTransport异常中获取HTTP状态代码?
我正在使用thrift HttpClient(C#)向我设置的web服务器发出web请求,如果该服务器返回的不是200(或我想象的202),我的请求将抛出TTTransport异常C# 如何从TTTransport异常中获取HTTP状态代码?,c#,thrift,C#,Thrift,我正在使用thrift HttpClient(C#)向我设置的web服务器发出web请求,如果该服务器返回的不是200(或我想象的202),我的请求将抛出TTTransport异常 我希望根据返回的特定状态代码响应此异常,但我没有看到任何在异常接口中公开状态代码的内容。我错过什么了吗?我知道异常消息包含状态代码,但我不想解析该消息来获取状态代码 如果服务器遇到处理错误,建议不要抛出HTTP 500。相反,服务器应该通过异常发出信号。考虑以下节俭IDL: exception MyProcessin
我希望根据返回的特定状态代码响应此异常,但我没有看到任何在异常接口中公开状态代码的内容。我错过什么了吗?我知道异常消息包含状态代码,但我不想解析该消息来获取状态代码 如果服务器遇到处理错误,建议不要抛出HTTP 500。相反,服务器应该通过异常发出信号。考虑以下节俭IDL:
exception MyProcessingError
{
1: string reason
2: string errorDetails
3: string recommendedAction
}
service FooBar {
void ProcessPayments( 1: double amount; 2: string receiver)
throws (1: MyProcessingError mpe)
}
与args和struct字段类似,可以声明多个异常类型。客户端可以像往常一样捕获这些异常:
try
{
client.ProcessPayments( 47.11, "Dagobert");
}
catch (MyProcessingError e)
{
// process exception
}
备注
- 服务器只能抛出在IDL中声明的异常 特别的电话李>
- 此外,
调用从不返回任何值,因此 也有例外one-way
TransportException
的类型
字段?如果是404,则设置为EndOfFile
。如果出现其他错误,我会收到不同的错误,例如未知
甚至t协议异常
,具体取决于我使用的协议。最后的办法是检查消息文本中的一些关键字,但这有点难看。上述任何一项都能解决问题吗?检查Endofile是否能推断出404,这是我未来版本节俭的依据吗?我不相信这一点,因为导致传输介质损坏的确切原因可能有多种原因。它不一定是404条件,但当使用HTTP传输时,它可以指示404的某种可能性。