Я использовал инструмент xd для генерации встроенной версии моего wsdl и сохранения его в файле wsdl.h с помощью этой командной строки (я делаю это в моем CMakeList.txt):
${GSOAP_ROOT_DIR}/bin/win32/xd -dwsdl ${CMAKE_CURRENT_BINARY_DIR}/${SOAP_NAME_SERVICE}.wsdl > ${CMAKE_CURRENT_BINARY_DIR}/wsdl.h
Послечто, я реализовал эту функцию, которая может лучше вести с параметрами в запросе GET:
int http_get(struct soap *soap)
{
soap_response(soap, SOAP_HTML); // HTTP response header with text/html
soap_send(soap, (const char*)wsdl);
soap_end_send(soap);
return SOAP_OK;
}
Итак, я настраиваю эту функцию для ведения со всеми командами GET, полученными gSoap:
.
.
.
struct soap soap;
soap_init(&soap);
soap.fget = http_get;
.
.
.
Затем, когда ваш сервер получит запрос HTTP / GET, ваша функция будет вызвана и отправит файл wsdl.Если вы хотите, вы можете прочитать файл WSDL во время выполнения и отправить вместо него soap_send (), чтобы встроить WSDL в ваш код, как я.