Outils pour utilisateurs

Outils du site


cours:service_oriented_computing_and_web_services:2017-2018:gsoap

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
cours:service_oriented_computing_and_web_services:2017-2018:gsoap [2018/04/12 07:24]
tigli [Raspbian]
cours:service_oriented_computing_and_web_services:2017-2018:gsoap [2018/04/12 15:35] (Version actuelle)
tigli [How to publish a WSDL of a web service using gSOAP]
Ligne 55: Ligne 55:
 [[https://​www.genivia.com/​dev.html|Getting Start with gSOAP]] [[https://​www.genivia.com/​dev.html|Getting Start with gSOAP]]
  
 +
 +
 +==== Publish the WSDL of your web service using gSOAP ====
 +||
 +[[https://​www.cs.fsu.edu/​~engelen/​soapdoc2.html#​tth_sEc19.10| In HTTP GET Support ...]] find an example that  produces a WSDL file upon a HTTP GET with path ** ?wsdl **
 +
 +<​code>​
 +
 +int http_get(struct soap *soap)
 +{
 +   FILE *fd = NULL;
 +   char *s = strchr(soap->​path,​ '?'​);​
 +   if (!s || strcmp(s, "?​wsdl"​))
 +      return SOAP_GET_METHOD;​
 +   fd = fopen("​myservice.wsdl",​ "​rb"​);​ // open WSDL file to copy
 +   if (!fd)
 +      return 404; // return HTTP not found error
 +   ​soap->​http_content = "​text/​xml";​ // HTTP header with text/xml content
 +   ​soap_response(soap,​ SOAP_FILE);
 +   for (;;)
 +   {
 +      size_t r = fread(soap->​tmpbuf,​ 1, sizeof(soap->​tmpbuf),​ fd);
 +      if (!r)
 +         ​break;​
 +      if (soap_send_raw(soap,​ soap->​tmpbuf,​ r))
 +         ​break;​ // can't send, but little we can do about that
 +   }
 +   ​fclose(fd);​
 +   ​soap_end_send(soap);​
 +   ​return SOAP_OK;
 +
 +
 +</​code>​
  
 ==== Test the interoperability ​ ==== ==== Test the interoperability ​ ====
cours/service_oriented_computing_and_web_services/2017-2018/gsoap.1523510691.txt.gz · Dernière modification: 2018/04/12 07:24 par tigli