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édentesRé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 05:24] – [Raspbian] tiglicours:service_oriented_computing_and_web_services:2017-2018:gsoap [2018/04/12 13:35] (Version actuelle) – [How to publish a WSDL of a web service using gSOAP] tigli
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 05:24 de tigli