我可以使用wsdl https://uslugaterytws1test.stat.gov.pl/terytws1.svc
访问webservice https://uslugaterytws1test.stat.gov.pl/wsdl/terytws1.wsdl用户名:TestPubliczny和密码:1234abcd
我尝试导入wsdl然后放置2个组件:
object htpr1: THTTPRIO
WSDLLocation = 'https://uslugaterytws1test.stat.gov.pl/wsdl/terytws1.wsdl'
Service = 'TerytWs1'
Port = 'custom'
HTTPWebNode = htprqrsp1
Converter.Options = [soSendMultiRefObj, soTryAllSchema, soRootRefNodesToBody, soCacheMimeResponse, soUTF8EncodeXML]
Left = 264
Top = 325
end
object htprqrsp1: THTTPReqResp
UserName = 'TestPubliczny'
Password = '1234abcd'
UseUTF8InHeader = True
InvokeOptions = [soIgnoreInvalidCerts, soAutoCheckAccessPointViaUDDI]
WebNodeOptions = []
UDDIOperator = '0'
Left = 296
Top = 376
end
在.pas文件中:
var
ten: terytws1.ITerytWs1;
begin
ten := (htpr1 as terytws1.ITerytWs1);
ShowMessage(BoolToStr(ten.CzyZalogowany));
end;
但是我得到请求超时,同时消耗使用C#中的应用程序正常工作。
在webservice sugest的C#提供程序中使用此代码:
try
{
var proxy = new ChannelFactory<ServiceReferenceWCF.ITerytWs1>("custom");
proxy.Credentials.UserName.UserName = TestPubliczny;
proxy.Credentials.UserName.Password = 1234abcd;
var result = proxy.CreateChannel();
var test = result.CzyZalogowany();
}
catch (Exception ex) { }
和
<client>
<endpoint address="https://uslugaterytws1test.stat.gov.pl/terytws1.svc"
binding="customBinding" bindingConfiguration="custom"
contract="ServiceReference1.ITerytWs1" name="custom" />
</client>
<bindings>
<customBinding>
<binding name="custom">
<security defaultAlgorithmSuite="Default"
authenticationMode="UserNameOverTransport"
requireDerivedKeys="true" includeTimestamp="true"
messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruar
y2005WSSecurityPolicy11BasicSecurityProfile10">
<localClientSettings detectReplays="false" />
<localServiceSettings detectReplays="false" />
</security>
<textMessageEncoding messageVersion="Soap11WSAddressing10" />
<httpsTransport maxReceivedMessageSize="2147483647"
maxBufferPoolSize="2147483647"/>
</binding>
</customBinding>
</bindings>
正如我之前从C#写的那样,我没有问题地服务