No, a Web service, by definition, talks via HTTP. More exactly, it is generally supposed to be used via the pure
client-service technology: you send HTTP request, the server responds by HTTP response. Please see:
https://en.wikipedia.org/wiki/HTTP[
^],
https://en.wikipedia.org/wiki/Web_service[
^].
At the lower level, any HTTP library will allow you to do that:
http://kukuruku.co/hub/cpp/a-cheat-sheet-for-http-libraries-in-c[
^].
But, as you can see, Web services can be different, so the practical ways to consume a service depends on what is it. It can be understand in wide or narrow sense of this word (see the second reference above). In more narrow sense, the service has description in a machine-processable format, standardized as WSDL:
https://en.wikipedia.org/wiki/Web_Services_Description_Language[
^].
In this case, you can use more specialized client libraries which provide
serialization marshaling of methods, and so on, so the client part would act in a way bases on the call of
interface functions which are implemented as
proxy with the HTTP and network streams under the hood. The service can use SOAP or not, be a rest service or
arbitrary, and so on.
To act as a client of a REST service, you can use appropriate API:
https://msdn.microsoft.com/en-us/library/jj950081.aspx[
^].
For act as a SOAP client, you can look at this CodeProject article:
SOAP client for C++[
^].
See also this article:
http://www.drdobbs.com/cpp/web-services-c/184405505[
^].
And so on. You hardly can get all relevant instructions until you do some research and find out what the service you want to use really is. In wide sense of this word, it can be anything which would fall in a very generic definition of Web service shown in the Wiki referenced above (second link). I even saw the cases where the request data is put in URL query parameters; and they still call this primitive technology "Web service". You need to find out what your case really requires.
—SA