Веб-сервис Processmaker в C#
У меня есть веб-сервис
http://sandbox3.processmaker.com/sysworkflow/en/neoclassic/services/wsdl2
Реализация в php для входа в систему
<?PHP
/*webservice connection NOTE: Replace this WebAddress with your instance*/
$client = new SoapClient('http://sandbox3.processmaker.com/sysworkflow/en/neoclassic/services/wsdl2');
$params = array(array('userid'=>'admin', 'password'=>'processmaker'));
$result = $client->__SoapCall('login', $params);
/*webservice validate connection: begin*/
if($result->status_code == 0){
p("Connection Successful!");
p("Session ID: " . $result->message);
$session = $result->message;
?>
Мне нужно вызвать этот веб-сервис на C#
Я создаю проект, нажимаю на Имя проекта и Добавить ссылку на сервис
названный SR_Processmaker
Я использую код ниже, чтобы получить sessionId
using Processmaker_Webservice.SR_Processmaker;
string userId = "1234567892";
string password = "123456789";
loginRequest login = new loginRequest(userId,password);
В логине просто userId и пароль.
XML это
<xs:schema elementFormDefault="qualified" targetNamespace="http://www.processmaker.com">
<xs:element name="login">
<xs:complexType>
<xs:sequence>
<xs:element name="userid" type="xs:string"/>
<xs:element name="password" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="loginResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="status_code" type="xs:integer"/>
<xs:element name="message" type="xs:string"/>
<xs:element name="version" type="xs:string"/>
<xs:element name="timestamp" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Любой, кто использует веб-сервис ProcessMaker, пожалуйста, помогите мне. Я новичок и мне нужна ваша помощь.
Заранее спасибо.
1 ответ
Решение
Вы на самом деле еще не вызывали сервис. Так что не хватает эквивалента этой строки PHP: $result = $client->__SoapCall('login', $params);
Таким образом, вам нужно создать экземпляр клиента службы и передать loginRequest
:
string userId = "1234567892";
string password = "123456789";
var loginRequest = new loginRequest(userId, password);
var proxy = new ProcessMakerServiceSoapClient();
var loginResult = proxy.loginAsync(loginRequest);
var result = loginResult.Result;
proxy.Close();