creating a client to call a web service without a wsdl in c#

brillox

I need to connect to a web service without knowing the wsdl; the only info I have is a sample request like the one below but I have no idea where to start from to build this xml; for example what is wsse:BinarySecurityToken? and do I have to create also prefixes like "wsu" or "wsse" ???

The info below are from a test server so there are any sensitive data disclosed here.

<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>

jason

You can look here for some code sample.

The xml you posted is the soap envelope xml and you should be able to send it as shown in the sample (with LoadXml) and get a response. (in the xml you posted you invoke the MiG action with migRequest).

If you dont have the soap envelope request you will have to create one and it is the tricky part if you dont know which functions to call.
The structure of the request is this: (in your sample there is also security which is not present here)

<?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>

Look here for more on the request message structure.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Creating a web-service client with a known but inaccessible wsdl

C# ASP.Net : How to call a web service in .NET 4.0 C# without using the WSDL or proxy classes

ServiceConstructionException when creating a CXF web service client (scala+java+wsdl2java)

SOAP web service without WSDL at the end of URL

How to call web service with client certificate from C#?

Call A C# Web Service From PHP Client

CXF create web service client from wsdl programmatically

Embedding the WSDL for a web service in a JAX-WS client .jar

Generate web service client secure policy from .wsdl for java

Error in Creating web-service client

How to call web service client in java eclipse

Creating and consuming a web service to call a method with Visual Studio 2015 and c#

WSDL Web Service returns empty array from C#

Programmatically created web service fails on client service call

How to connect to WSDL web service?

How to consume WSDL web service

Creating a web-service client directly from the source

Steps in creating a web service using Axis2 - The client code

JAX-WS - wsimport tool not creating web service client correctly

How to call component method inside sibling component without creating a service?

Creating a SOAP client in java given a WSDL file

From wsdl to client java web service(Server has self signed certificate)

Creating SOAP Service from existing WSDL (not consuming)

How to specify basic authentication in PL/SQL SOAP WSDL web service call

How to call a https rest service without client certificate

SOAP web service call using WebServiceTemplate in SpringBoot client

write a client in Python to call a rest web service using JWT authentication

mule web service cxf client call , hot to increase timeout?

How to call a c# web service in java?