Я конвертирую программу Delphi 2007 в Delphi XE2, и у меня возникла проблема со следующей ошибкой message:
Невозможно получить конечную точку URL для службы / порта "/" из WSDL 'http: // .....'
Служба, к которой я подключаюсь, написана в Delphi 2007.
Вкл. 2007 компилируется и запускается без проблем. На XE2 с таким же кодом вываливается с ошибкой.
Я попытался повторно импортировать интерфейс с помощью нового средства импорта WSDL с установленными значениями по умолчанию, но без радости.
Я также попытался задать имена портов и служб, но ошибка не исчезла. Не уверен, какая информация используется, но насколько я могу судить, она подключается.
Это операция метода, который я использую.
<operation name="CheckRegistration">
<soap:operation soapAction="urn:ScubaUpdateWSIntf-IScubaUpdateWS#CheckRegistration" style="rpc"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</output>
</operation>
Это сообщение:
<message name="CheckRegistration10Request">
<part name="centreId" type="xs:int"/>
<part name="centreName" type="xs:string"/>
<part name="checkActiveOnly" type="xs:boolean"/>
</message>
<message name="CheckRegistration10Response">
<part name="return" type="xs:boolean"/>
</message>
Помимо импорта WSDL, добавления HTTPRIO и вызова метода с помощью
(HTTPRIO1 as IScubaUpdateWS).CheckRegistration(strtoint(tcentre),tcentreName,true);
Я не думаю, что я делает что-нибудь еще, и, как я уже сказал, тот же код работает в Delphi 2007.