gpt4 book ai didi

c# - 在 c# 中创建一个客户端来调用没有 wsdl 的 web 服务

转载 作者:行者123 更新时间:2023-11-30 16:43:31 26 4
gpt4 key购买 nike

我需要在不知道 wsdl 的情况下连接到 web 服务;我拥有的唯一信息是一个类似下面的示例请求,但我不知道从哪里开始构建这个 xml;例如什么是 wsse:BinarySecurityToken?我还必须创建像“wsu”或“wsse”这样的前缀吗???

以下信息来自测试服务器,因此此处披露了任何敏感数据。

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="Username-123" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>gen-emiswebmobile.e-mis.co.uk</wsse:Username>
</wsse:UsernameToken>
<wsu:Timestamp wsu:Id="Timestamp-1" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsu:Created>2017-06-29T22:42:44.870Z</wsu:Created>
<wsu:Expires>2017-06-29T22:57:44.870Z</wsu:Expires>
</wsu:Timestamp>
<wsse:BinarySecurityToken wsu:Id="CertId-4468839874371617328" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">MIIFVjCCBD6gAwIBAgIHTvS0LmWypjANBgkqhkiG9w0BAQsFADCBtDELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMuMS0wKwYDVQQLEyRodHRwOi8vY2VydHMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS8xMzAxBgNVBAMTKkdvIERhZGR5IFNlY3VyZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjAeFw0xNDEwMDgwNzMzNDdaFw0xNjEwMDgwNzMzNDdaMEsxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDEmMCQGA1UEAxMdZ2VuLWVtaXN3ZWJtb2JpbGUuZS1taXMuY28udWswggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzpXaDzByOKYA0C1MCa2fzDzazgiJBqfHh08/kb4cf/8Vceu1mTst1ggVOrvIpTVf+jUmj05OYI1I5gSEUN+mEXOJv/mK5Fmalx+i7lIxRa3xT47KMcbAmmTzr1IY8CQUMGQhW7idDU680R2eO2n5x1q+2icViQb/Ooa23eBWgH+BwxhUqpi2NrvbHC/Xg3A8tkiIeZCsm5eyVbrzQykbFyeAKhX5ZBw+P0EKJB+mvfQ7clmyGbcBwNw3nPWscxOO2w/OYd7bh7VLiRK3Mgz6OYL3fHMc/tDsEXKXL1j+60ZVJXtZNrFykWNFsA14EV+unouf0cUZqi8kDhvG8ae+DAgMBAAGjggHTMIIBzzAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAOBgNVHQ8BAf8EBAMCBaAwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nb2RhZGR5LmNvbS9nZGlnMnMxLTg3LmNybDBTBgNVHSAETDBKMEgGC2CGSAGG/W0BBxcBMDkwNwYIKwYBBQUHAgEWK2h0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS8wdgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5nb2RhZGR5LmNvbS8wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS9nZGlnMi5jcnQwHwYDVR0jBBgwFoAUQMK9J47MNIMwojPX+2yz8LQsgM4wSwYDVR0RBEQwQoIdZ2VuLWVtaXN3ZWJtb2JpbGUuZS1taXMuY28udWuCIXd3dy5nZW4tZW1pc3dlYm1vYmlsZS5lLW1pcy5jby51azAdBgNVHQ4EFgQUfnm7SRUsh4sUkMHC41QY+Q3ysZ0wDQYJKoZIhvcNAQELBQADggEBAK3zIhwhU3N7bxGjRVTFsQDLvJBjrIeJiRHXTtPF8A/muYJdcapUTcz/cl8mu9hXN3po0WJQii2kttBQD7MAjHlIMDDY6iTDrEorqch0OUSc6tJe6KQlNdeE4Cng11/AlcTBNitxE8aNiC8PUsh4P4Se8jDNoa7ESSgv9MXpHUT+Dfx5wsM4CPkUMhdaQiPQPL4QzbwpphX+hD4DTGGkKR34HR91HLoUap/gOS97ZTUmUBtgOSSKGL+kVrs+HKA6+Zbv55ya0bYFHJikN/5R1XUgZX6l3VZJJvBnmFHETd2I6H/1/VKOiSoD4JNZf7cxfDRmi8cLixE6PdSM41ve6qw=</wsse:BinarySecurityToken>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="#Timestamp-1">
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>WOHqa2p3/ZcVQ2FU36OEU9gfYaI=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>q/ZGfYAacr6Vv/LwfyAwyxXGLVkJ7qXJYkMvrCludwNRaENHNR1LekPwVuMGQ95uoKzk9npEnefHrCD1+JmufKltDtXLIZmhUJNryhOcUHzSoDLjdCAOJ+Ylccf73fhI7uHJr63NlbmV6IVzTrb3RPpfoJDpuDqyrkqS0l4HQI3BkzbDYR3Eo3ce8oUzfZ32xpLTQ/LceI6DsaHMCtimxjhAJDa1NuRDbsosHgxw8MEms1hc5VwR4s2/h6GJEkz5EXegWkm9CBNlpgceaFF7HMUPZqm7PUTHTrsmfN9uEZlp4iaUQrCBPNwsju3dbD1nOxNAxQeGvx5RNL0xvY5emg==</SignatureValue>
<KeyInfo Id="KeyId-4468839874371617327">
<wsse:SecurityTokenReference wsu:Id="STRId-3E04823056058230" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Reference ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" URI="#CertId-4468839874371617328" />
</wsse:SecurityTokenReference>
</KeyInfo>
</Signature>
</wsse:Security>
<Action xmlns="http://www.w3.org/2005/08/addressing">MiG</Action>
<MessageID xmlns="http://www.w3.org/2005/08/addressing">84CF41DA-133A-442D-979B-D76697AF71BF</MessageID>
<To xmlns="http://www.w3.org/2005/08/addressing">https://185.13.72.96/Miggateway</To>
<ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
<Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
</ReplyTo>
</soap:Header>
<soap:Body>
<q1:migRequest xmlns:q1="http://www.healthcaregateway.co.uk/mig">
<q1:serviceDefinition>
<q1:name>MIG.DATAEXTRACTIONSERVICE.EhrExtractRequest</q1:name>
<q1:version>0.0.2</q1:version>
</q1:serviceDefinition>
<q1:serviceHeader>
<q1:source xmlns:q1="http://www.healthcaregateway.co.uk/mig">
<q1:identifier>externaldevuser:urn:hgl:addressing:ods:N00001</q1:identifier>
</q1:source>
<q1:target xmlns:q1="http://www.healthcaregateway.co.uk/mig">
<q1:nationalCode>urn:hgl:addressing:ods:A00005</q1:nationalCode>
</q1:target>
</q1:serviceHeader>
<q1:serviceContent>
<q1:ehrExtractRequestv2-0 xmlns:q1="http://www.healthcaregateway.co.uk/mig">
<q1:id>4df5cdb1-4a20-42a5-b604-6033eec5224d</q1:id>
<q1:consent>
<q1:value>Given</q1:value>
</q1:consent>
<q1:provenance>
<q1:creationTime>2013-07-15T14:37:28.7273043Z</q1:creationTime>
<q1:system>
<q1:id>BED045C0-BC58-4934-8E11-2FC08F730060</q1:id>
<q1:name>EMISWebCR1 50002</q1:name>
</q1:system>
</q1:provenance>
<q1:patient>
<q1:primaryIdentifier type="NHS">8888888888</q1:primaryIdentifier>
</q1:patient>
<q1:requestSpecification>
<q1:id>654d8e02-6b09-4754-a095-968c397db560</q1:id>
<q1:responseFormat>OPENHR</q1:responseFormat>
<q1:request>
<q1:name>scm.diagnosis</q1:name>
<q1:includeAssociatedText>true</q1:includeAssociatedText>
</q1:request>
</q1:requestSpecification>
</q1:ehrExtractRequestv2-0>
</q1:serviceContent>
</q1:migRequest>
</soap:Body>

最佳答案

可以看看here对于一些代码示例。

您发布的 xml 是 soap 信封 xml,您应该能够如示例中所示发送它(使用 LoadXml)并获得响应。 (在您发布的 xml 中,您使用 migRequest 调用 MiG 操作)。

如果您没有 soap 信封请求,您将不得不创建一个,这是棘手的部分如果您不知道要调用哪些函数
请求的结构是这样的:(在您的样本中还有这里不存在的安全性)

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<MethodFoo>
<param1>value</param1>
<param2>value</param1>
</MethodFoo>
</soap:Body>
</soap:Envelope>

here有关请求消息结构的更多信息。

关于c# - 在 c# 中创建一个客户端来调用没有 wsdl 的 web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44836141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com