Я узнаю все об API SOAP (работая через модуль Trailhead) и у меня проблемы с SoapUI.

Я могу успешно выполнить вход в систему (имя пользователя, пароль и токен удалены):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:enterprise.soap.sforce.com">
   <soapenv:Header>

   </soapenv:Header>
   <soapenv:Body>
      <urn:login>
         <urn:username>my-username@cunning-goat-67671.com</urn:username>
         <urn:password>passwordAndSecurityToken</urn:password>
      </urn:login>
   </soapenv:Body>
</soapenv:Envelope>

Но когда я пытаюсь создать запись в соответствии с инструкциями в модуле Trailhead, я получаю сообщение об ошибке «Отказано в подключении».

Вот вызов, который я пытаюсь выполнить в SoapUI (токен сеанса удален):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:enterprise.soap.sforce.com" xmlns:urn1="urn:sobject.enterprise.soap.sforce.com">
   <soapenv:Header>
      <urn:SessionHeader>
         <urn:sessionId>mySecurityTokenHere</urn:sessionId>
      </urn:SessionHeader>
   </soapenv:Header>
   <soapenv:Body>
      <urn:create>
         <!--Zero or more repetitions:-->
         <urn:sObjects xsi:type="urn1:Account" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <!--Zero or more repetitions:-->
            <Name>Sample SOAP Account</Name>
         </urn:sObjects>
      </urn:create>
   </soapenv:Body>
</soapenv:Envelope>

И вот сообщение об ошибке, которое я получаю: введите здесь описание изображения

Вещи, которые я пробовал:

  1. добавление моего IP-адреса в белый список сети
  2. следуя инструкциям здесь, чтобы убедиться, что Я не пытаюсь войти в систему с помощью TLS1.0 (хотя вызов входа в систему работает нормально, так что это, вероятно, был цеп с красной сельдью)
  3. Отключение моего брандмауэра Bitdefender и проверка того, что мой прокси-сервер не работает.
  4. повторно сгенерировать мой токен безопасности, войти с ним свежим и сразу же скопировать-вставить идентификатор сеанса на случай, если срок его действия истек (еще один длинный выстрел)
  5. переход к местоположению, описанному в этот пост, чтобы попытаться найти дополнительную информацию об ошибке - местоположение файла не существует на моем ПК.

К сожалению, мое сообщение об ошибке не изменилось.

Приму любой совет с благодарностью. Даже если кто-то может указать мне направление для поиска более подробного журнала отладки в SoapUI, это было бы потрясающе.

Отредактировано для дополнительных скриншотов:

Вот как выглядит мой вызов входа в систему с конечной точкой:

enter image description here

И создание вызова, который терпит неудачу:

enter image description here

3
Charlotte G 27 Авг 2018 в 20:22
Не могли бы вы добавить полную конечную точку, на которую отправляется вызов создания? Вы можете выбрать конечный идентификатор организации, который вам нравится.
 – 
Daniel Ballinger
27 Авг 2018 в 02:06

1 ответ

Лучший ответ

Я подозреваю, что проблема заключается в URL-адресе конечной точки. Похоже, вы используете Enterprise API на основе структуры urn:sObjects xsi:type.

Для партнерского API я использую следующее. Обратите внимание, что это то, что возвращается в loginResponse serverUrl:

https://curious-raccoon-253753-dev-ed.my.salesforce.com/services/Soap/u/36.0/00D7F0000000001

Для корпоративного API вам потребуется заменить /u/ на /c/. Например.

https://curious-raccoon-253753-dev-ed.my.salesforce.com/services/Soap/c/36.0/00D7F000000001

Конечно, ваша первая игровая площадка будет иметь другой поддомен и дополнительный идентификатор организации.


Я снова попытался воспроизвести ваш вызов Enterprise API через пользовательский интерфейс SOAP, скопировав вставку вашего образца запроса и изменив идентификатор сеанса. Я пробовал как с идентификатором организации, так и без него в конце URL-адреса. Работает на моей машине™

enter image description here

Работает ли пользовательский интерфейс SOAP с другими организациями, или только ваша временная организация вызывает ошибку отказа в соединении?

Это действительно похоже на ошибку сетевого уровня. Я бы попробовал использовать Soap UI с другого компьютера и/или другого инструмента, который использует Soap API для обновления записей. Если ваша единственная цель — пройти испытание Trailhead, вы, вероятно, можете обмануть проверку, используя другой инструмент на основе API для создания записи учетной записи.

1
Daniel Ballinger 28 Авг 2018 в 01:16
Спасибо Даниэль. Я разместил дополнительные скриншоты, чтобы вы могли видеть конечные точки, которые я использую. Интересно, что вы используете идентификатор организации в конце после версии API — модуль Trailhead не упоминает об этом. Ради интереса я попытался добавить это после версии API, но это не имело никакого значения.
 – 
Charlotte G
27 Авг 2018 в 20:29
1
Да, похоже, вы были мертвы из-за денег, Дэниел. Я пытался запустить испытание на другой машине и работал очень хорошо. Большое спасибо за вашу помощь в этом. Хотел бы я знать, в чем проблема на моем собственном ПК! Я подозреваю, что мне нужно запустить SoapUI от имени администратора.
 – 
Charlotte G
28 Авг 2018 в 23:26