我有SOAP服务,如果请求正文中存在验证错误,该服务将返回HTTP 400(错误请求)。问题是,当我像这样调用SOAP服务时
var client = new ExternalServiceClient(); // we assume binding and endpoint configured correctly
var result = client.PerformOperation(params);
我确实收到了ProtocolException
。
现在,我找到了一种处理它的方法,但是这里的问题是-如果验证错误,SOAP服务是否应该返回400状态代码?返回HTTP 2xx状态代码不是更好吗?另外,如果HTTP 400响应更好(对于RESTful服务,这是有意义的,但是看起来不适合SOAP),那么有一种方法可以将这种响应配置为被视为成功者?
其他问题-SOAP如何区分状态码?我在网上发现“ SOAP HTTP遵循HTTP状态代码的语义”。我知道2xx表示成功响应,而5xx表示异常。但是,SOAP是否处理其他状态代码?尤其要考虑到SOAP本身并不与特定协议绑定,因此它可以仅针对HTTP(S)依赖状态代码。