У меня есть сервис 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).