어떤 이유인지 SourceGear은 설치시 문서화되지 않은 웹 서비스를 제공합니다. 그들은 실제로 웹 서비스가 다소 엉망이기 때문에 개발자에게 API를 사용하라고 요청하지만, 필자는이 API를 Perl 환경에서 사용할 수 없기 때문에이 경우 문제가된다. 그래서 나의 구체적인 경우에 대한 솔루션은 웹 서비스를 사용하는 것이다.SOAP :: Lite를 사용하여 SourceGear 웹 서비스에 액세스하려면 어떻게해야합니까?
이것은 문제가되지 않습니다. SOAP::Lite을 사용하여 나는 같은 방식으로 과거에 여러 웹 서비스에 연결했다. 그러나 SOAP 호출을 어디서 만들 수 있는지 알지 못한다면 문서화가 부족하다는 것이 큰 혼란입니다. XML을 가지고 어디에서 어떻게 호출 할 것인지 해독 할 수 있습니다. 실제 SOAP 천재가 나를 도와 줄 수 있다면 좋을 것입니다.
이
는 로그인 호출 예와 예상되는 반응이다 :요청
POST /fortress/dragnetwebservice.asmx HTTP/1.1
Host: velecloudserver
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.sourcegear.com/schemas/dragnet/LoginPlainText"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<LoginPlainText xmlns="http://www.sourcegear.com/schemas/dragnet">
<strLogin>string</strLogin>
<strPassword>string</strPassword>
</LoginPlainText>
</soap:Body>
</soap:Envelope>
응답
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<LoginPlainTextResponse xmlns="http://www.sourcegear.com/schemas/dragnet">
<LoginPlainTextResult>int</LoginPlainTextResult>
<strAuthTicket>string</strAuthTicket>
</LoginPlainTextResponse>
</soap:Body>
</soap:Envelope>
나는이 조립 할 수있는 방법을 찾고 있어요 어쩐지. 이것은 내 Perl 예제입니다 :
my $soap = SOAP::Lite -> uri ('http://velecloudserver/fortress/dragnetwebservice.asmx') -> proxy('http://velecloudserver/fortress/dragnetwebservice.asmx/LoginPlainText');
my $som = $soap->call('LoginPlainText', SOAP::Data->name('LoginPlainText')->value(
\SOAP::Data->value([
SOAP::Data->name('strLogin')->value('admin'),
SOAP::Data->name('strPassword')->value('Adm1234'),
]))
);
어떤 팁 감사하겠습니다.
프록시 방식이 올바르게 작동하는 것으로 변합니다. 서비스에서 LoginPlainTextResult와 null 값으로 1002를 반환하기 때문에 몇 가지 문제가 있습니다. strAuthTicket에 대한 null 값은 여전히 무엇을 의미하는지 모르지만 적어도 회신을 받았습니다. – user565793