Bonjour à tous,
Alors voilà tout est dans la question.
Je cherche comment je peut désactiver les namespaces avec gsoap.
J'ai développé un client soap en C avec gsoap et ce client et sensé appeller un service asp.net que je ne peut pas modifier. Or ce service est prévu pour fonctionner sans namespaces.
Voici le schema qu'il doit normalement respecter :
Appel :
Code :
- POST / ***/Webservices/ ***.asmx HTTP/1.1
- Host: ***
- Content-Type: text/xml; charset=utf-8
- Content-Length: length
- SOAPAction: "http://***.com/IsAttrib"
-
- <?xml version="1.0" encoding="utf-8"?>
- <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
- <soap:Body>
- <IsAttrib xmlns="http://***.com/">
- <SitNum>int</SitNum>
- <CarNum>long</CarNum>
- </IsAttrib>
- </soap:Body>
- </soap:Envelope>
|
Réponse :
Code :
- HTTP/1.1 200 OK
- Content-Type: text/xml; charset=utf-8
- Content-Length: length
- <?xml version="1.0" encoding="utf-8"?>
- <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
- <soap:Body>
- <IsAttribResponse xmlns="http://***.com/">
- <IsAttribResult>boolean</IsAttribResult>
- </IsAttribResponse>
- </soap:Body>
- </soap:Envelope>
|
Et voici le fichier d'entête que j'ai écris pour mon client gsoap :
Code :
- //gsoap ca service encoding: litteral
- //gsoap ca service name: ca
- //gsoap ca service definitions: ca
- //gsoap ca service location: http://***/Webservices/***.asmx
- //gsoap ca service namespace: urn:ca
- //gsoap ca schema elementForm: qualified
- //gsoap ca schema attributeForm: qualified
-
- int ca__IsAttrib(int SiteNum, int CarNum, int *IsAttribResult);
|
Voilà donc comme vous pouvez le constater ici j'ai un namespace "ca".
Et donc quand je lance mon client il plante avec cette erreur :
Code :
- SOAP 1.1 fault: SOAP-ENV:Client [no subcode]
- "Validation constraint violation: tag name or namespace mismatch in element <IsAttribResponse>"
- Detail: [no detail]
|
C'est pour cela que j'essaye de désctiver les namespaces sur mon client gSoap de façon a ce que mon client ne rale pas quand il recoit une reponse sans namespace.
Merci d'avance d evotre aide.
Message édité par Vilo5 le 03-05-2006 à 15:37:20