bonjour,
on s'est arraché les cheveux aux boulot pour envoyer une requête soap via l'API wininet vers un webservice qui se trouve sur un serveur apache sous axis.
On a trouvé la solution (qui n'est décrite nul part dans le web) :
Lorsqu'on utilise httpsendrequest il y a deux paramettres, le header http et la requête soap.
le premier peut être passé en unicode mais attention, la requête soap, elle, doit être dans un char*. autrement vous aurez une exception error 500 stream closed de la part du serveur.
le code :
TCHAR* postheader = _T("Content-Type: text/xml;charset=UTF-8\r\nSOAPAction:\"\"\r\n");
char * soapReq = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:tem=\"http://tempuri.org/\"><soap:Header/><soap:Body> <tem:rechercherUsagers> <tem:Numeropacage>?</tem:Numeropacage> </tem:rechercherUsagers></soap:Body></soap:Envelope>" ;
DWORD dwlenreq=strlen(soapReq);
HttpSendRequest(hhttpopenreque st,postheader,lstrlen(posthead er),soapReq,dwlenreq) ;
-----