#include <afxinet.h>
void ConsumirWebService() {
// URL del servicio web
CString strURL = _T("http://www.example.com/WebService.asmx");
// Inicializar la sesión de Internet
CInternetSession session;
try {
// Establecer la conexión HTTP con el servicio web
CHttpConnection* pConnection = session.GetHttpConnection(strURL);
CHttpFile* pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T("/MethodName"));
// Establecer el encabezado de la solicitud
CString strHeaders = _T("Content-Type: text/xml");
pFile->SendRequest(strHeaders, static_cast<LPVOID>(LPCTSTR("<SOAP-ENV:Envelope ...>")), _tcslen(_T("<SOAP-ENV:Envelope ...>")));
// Leer la respuesta del servicio web
CString strResponse;
DWORD dwRead;
while (pFile->Read(&strResponse.GetBufferSetLength(4096), 4095, &dwRead))
strResponse.ReleaseBuffer(dwRead);
// Cerrar la conexión
pFile->Close();
delete pFile;
pConnection->Close();
delete pConnection;
// Procesar la respuesta del servicio web (strResponse contiene la respuesta XML)
// ...
// Mostrar la respuesta (puedes imprimirlo o analizarlo según sea necesario)
AfxMessageBox(strResponse);
}
catch (CInternetException* pEx) {
// Manejar las excepciones de conexión
TCHAR szError[1024];
pEx->GetErrorMessage(szError, 1024);
AfxMessageBox(szError);
pEx->Delete();
}
session.Close();
}
int main() {
AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0);
// Llamar a la función para consumir el servicio web
ConsumirWebService();
return 0;
}