gSOAP — изменить заголовок HTTP POST

Я использую созданные gSOAP классы для отправки и получения сообщений SOAP. Проблема в том, что когда я использую прокси, например:

service.proxy_host = "some-proxy.mydomain.com";
service.proxy_port = 8080;

заголовок POST изменяется и отправляет полный URL-адрес конечной точки, а не только URL-адрес приложения, например:

POST https://my-portal-server.mydomain.com/ecater/ws/rbiecat:data/some_Port HTTP/1.1

вместо этого:

POST /ecater/ws/rbiecat:data/some_Port HTTP/1.1

Может ли кто-нибудь сказать мне, как я могу изменить заголовок POST перед отправкой запроса? Или я что-то не так делаю?


person Joey Ezekiel    schedule 24.11.2014    source источник


Ответы (1)


Если установлено значение soap->proxy_host, то в заголовке POST используется полный URL-адрес, поскольку прокси-серверу требуется абсолютный путь для подключения к конечной точке назначения. Это требование соответствия.

В качестве альтернативы вы можете определить обратный вызов для переопределения операции отправки HTTP следующим образом:

soap_init1(&soap, ...); // etc
soap->fpost = myhttppost
...
int myhttppost(struct soap *soap, const char *endpoint, const char *host, int port, const char *path, const char *action, size_t count)
{
   // see stdsoap2.cpp http_post() for code to customize your HTTP POST operation
}
person Dr. Alex RE    schedule 02.12.2014
comment
мне нужно добавить дополнительный код? Я могу делать все, что хочу, в myhttppost запрос не меняется? - person lokimidgard; 30.11.2016