ATLServer class CSoapSocketClientT cannot handle greater than 2048 bytes in response
UPDATE: Replace ATLServer with WWSAPI! Windows Web Services API Client code walkthrough |
Using the following code:
CoInitialize (NULL);
CServiceT <CSoapSocketClientT<>> * myclient = new CServiceT<CSoapSocketClientT<>>; //socket client
BSTR results;
HRESULT hr = myclient->BigString(1024*32,&results);
The hr value was E_FAIL.
This is because the Socket Based class cannot handle a return buffer bigger than 2K.
The solution is to use one of the following derivations:
CServiceT <CSoapWininetClient> * myclient =
new CServiceT<CSoapWininetClient>; //wininet client
CServiceT <CSoapMSXMLInetClient> * myclient =
new CServiceT<CSoapMSXMLInetClient>; //winhttp client
Neither of these have the 2K limit