Пример клиента gSOAP выдает ошибку SOAP 1.1 SOAP-ENV: Клиент [без субкода] - PullRequest
0 голосов
/ 21 мая 2019

Я скачал gsoap_2.8.83 и столкнулся со следующей ошибкой мыла при выполнении примера из онлайн-документа .

SOAP 1.1 fault SOAP-ENV:Client[no subcode]
"Error 200: HTTP 200 OK"
Detail: [no detail]

Код именно такой:

//#include "gsoapWinInet.h"
#include "soapcalcProxy.h"
#include "calc.nsmap"
#include "stdafx.h"

/* the Web service endpoint URL */
const char server[] = "http://websrv.cs.fsu.edu/~engelen/calcserver.cgi";

int main(int argc, char **argv)
{
    if (argc < 4)
    {
        fprintf(stderr, "Usage: [add|sub|mul|div|pow] num num\n");
        exit(1);
    }
    calcProxy calc(server);
    //soap_register_plugin(calc.soap, wininet_plugin);
    calc.soap->recv_timeout = 60;

    double a, b, result;
    a = strtod(argv[2], NULL);
    b = strtod(argv[3], NULL);
    int ret = 0;
    switch (*argv[1])
    {
    case 'a':
        std::cout << a << " + " << b;
        ret = calc.add(a, b, result);       
        break;
    case 's':
        std::cout << a << " - " << b;
        ret = calc.sub(a, b, result);
        break;
    case 'm':
        std::cout << a << " * " << b;
        calc.mul(a, b, result);
        break;
    case 'd':
        std::cout << a << " / " << b;
        calc.div(a, b, result);
        break;
    case 'p':
        std::cout << a << " ^ " << b;
        calc.pow(a, b, result);
        break;
    default:
        fprintf(stderr, "Unknown command\n");
        exit(1);
    }
    if (calc.soap->error)
        calc.soap_stream_fault(std::cerr);
    else
        std::cout << " = " << result << std::endl;
    calc.destroy(); /* clean up */
    getchar();
    return 0;
}

Полный проект VS2015 также можно получить здесь .

Сборка и запуск с аргументами командной строки: main.exe add 1 2 Получение вышеупомянутой ошибки.

Чтобы отладить сообщение SOAP, я добавил плагин gsoap WinInet (просто раскомментировал эти две строки в приведенном выше коде), после чего ответ оказался хорошим.

Мой вопрос: почему код без плагина wininet неудачен? Благодаря.

...