aboutsummaryrefslogtreecommitdiff
path: root/samples/quote4/quote4.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'samples/quote4/quote4.cpp')
-rw-r--r--samples/quote4/quote4.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/samples/quote4/quote4.cpp b/samples/quote4/quote4.cpp
new file mode 100644
index 0000000..4779bc7
--- /dev/null
+++ b/samples/quote4/quote4.cpp
@@ -0,0 +1,50 @@
+#include "soapH.h"
+using namespace std;
+int main(int argc, char **argv)
+{ soap *soap = soap_new1(SOAP_DOM_NODE); // enable deserialization of application data
+ if (argc <= 1)
+ { fprintf(stderr, "Usage: quote4 <ticker>\n");
+ exit(1);
+ }
+ soap_dom_element envelope(soap, "http://schemas.xmlsoap.org/soap/envelope/", "Envelope");
+ soap_dom_element body(soap, "http://schemas.xmlsoap.org/soap/envelope/", "Body");
+ soap_dom_attribute encodingStyle(soap, "http://schemas.xmlsoap.org/soap/envelope/", "encodingStyle", "http://schemas.xmlsoap.org/soap/encoding/");
+ soap_dom_element request(soap, "urn:xmethods-delayed-quotes", "getQuote");
+ soap_dom_element symbol(soap, NULL, "symbol", argv[1]);
+ soap_dom_element response(soap);
+ envelope.add(body);
+ body.add(encodingStyle);
+ body.add(request);
+ request.add(symbol);
+ cout << "Request message:" << endl << envelope << endl;
+ soap_serialize_xsd__anyType(soap, &envelope);
+ if (soap_connect(soap, "http://services.xmethods.net/soap", "")
+ || soap_put_xsd__anyType(soap, &envelope, NULL, NULL)
+ || soap_end_send(soap)
+ || soap_begin_recv(soap)
+ || !soap_get_xsd__anyType(soap, &response, NULL, NULL) // returns pointer when successful
+ || soap_end_recv(soap)
+ || soap_closesock(soap))
+ { soap_print_fault(soap, stderr);
+ soap_print_fault_location(soap, stderr);
+ }
+ else
+ { cout << "Response message:" << endl << response << endl;
+ for (soap_dom_element::iterator walker = response.find(SOAP_TYPE_xsd__float); walker != response.end(); ++walker)
+ cout << "Quote = " << *(xsd__float*)(*walker).node << endl;
+ }
+ soap_destroy(soap);
+ soap_end(soap);
+ soap_done(soap);
+ free(soap);
+ return 0;
+}
+SOAP_NMAC struct Namespace namespaces[] =
+{
+ {"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/*/soap-envelope"},
+ {"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding"},
+ {"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance"},
+ {"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema"},
+ {NULL, NULL}
+};
+