2014-11-24 7 views
1

gSOAP 생성 클래스를 사용하여 SOAP 메시지를 보내고받습니다. 문제는 내가 좋아하는 프록시를 사용할 때이다 :gSOAP - HTTP POST 헤더 수정

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 헤더를 수정할 수 있습니까? 아니면 내가 잘못하고있는거야?

답변

0

soap->proxy_host이 설정되면 프록시는 대상 끝점에 연결하기 위해 절대 경로가 필요하기 때문에 POST 헤더에서 전체 URL이 사용됩니다. 이는 규정 준수 요구 사항입니다.

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 
} 
+0

내가 코드를 추가해야합니까 :

다른 방법으로는 다음과 같이 HTTP 포스트 동작을 재정의 할 콜백을 정의 할 수 있습니다? 요청이 변경되지 않는 'myhttppost'에서 나는 무엇을 할 수 있습니까? – lokimidgard