Получение ARERR 149 Имя пользователя должно быть указано в контрольной записи. - PullRequest
0 голосов
/ 07 мая 2019

У меня есть URL-адрес SOAP, при выполнении URL-адреса через браузер я получаю ответ wsdl. Но когда я пытаюсь вызвать метод в ответе, используя список обязательных параметров, и он показывает "ARERR [149] Aимя пользователя должно быть указано в контрольной записи ". Я пытался использовать PHP, а также Python, но я получаю ту же ошибку.

Я искал эту ошибку и получил такую ​​информацию:" Поле имениПараметр ARControlStruct пуст. Введите имя пользователя системы AR в этом поле. ". Но нигде я не видел, как задать параметр имени пользователя.

1 Ответ

0 голосов
/ 14 мая 2019

Я получил решение этой проблемы. Далее следуют шаги, которые я выполнил, чтобы решить проблему (я использовал «zeep» сторонний модуль для решения этой проблемы):

  1. Выполните следующую командучтобы понять WSDL:

python -mzeep wsdl_url

Поиск строки «Сервис:».Ниже мы можем видеть имя нашей операции

Для моей операции я нашел следующую запись:

MyOperation (parameters ..., _soapheaders = {параметры: ns0: AuthenticationInfo})

, который четко сообщает, что я должен передать параметры и параметр авторизации, используя kwargs "_soapheaders"

После этого я узнал, что мне нужно передать моиэлемент аутентификации как аргумент _soapheaders функции MyOperation.

Создан элемент Auth:

auth_ele = client.get_element ('ns0: AuthenticationInfo') auth = auth_ele (userName = 'me', пароль = 'mypwd')

Передал аутентификацию моей операции:

cleint.service.MyOperation ('parameters ..', _soapheaders = [auth])

...