Протокол SOAP часто вызывает непредвиденную ошибку: 503 Ошибка сервера: служба недоступна для URL: http://schemas.xmlsoap.org/soap/encoding/ - PullRequest
0 голосов
/ 21 декабря 2018

Я использую протокол soap для вызова файла wsdl и формата XML.Однако зачастую существует необъяснимое недоступное обслуживание.

Частота вызовов не может быть оценена, но после неудачного вызова можно повторить попытку.Но это не самое фундаментальное решение, я хочу найти лучший способ.

     from zeep import Client
     import xmltodict

     client = Client('FSUService.wsdl')
     # update_url_in_wsdl(url)
     client.service._binding_options['address'] = url
     response = client.service.invoke(data)
     res = xmltodict.parse(response)

С http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html,, который определяет эти коды состояния:

10.5.4 503 Сервис недоступен В настоящее время сервер не может обработать запрос из-за временной перегрузки или обслуживания сервера.Подразумевается, что это временное состояние, которое будет смягчено после некоторой задержки.Если известно, длина задержки МОЖЕТ быть указана в заголовке Retry-After.Если Retry-After не задано, клиент ДОЛЖЕН обработать ответ, как это было бы для ответа 500.Примечание. Наличие кода состояния 503 не означает, что сервер должен использовать его при перегрузке.Некоторые серверы могут просто отказаться от подключения.Так что да, перегрузка сервера является вероятной причиной.Чтобы выяснить, как с этим справиться, вы, вероятно, захотите обсудить это с кем бы то ни было, обслуживающим службу, чтобы понять, что они могут терпеть.Затем, если вы будете искать «запросы веб-дросселя» в SO, вы обнаружите несколько дискуссий о том, как реализовать регулирование, когда вы знаете свое требование.

...