2014-03-12 41 views
0

我使用WSDL2C創建客戶端存根c代碼以訪問axis2 Web服務。我的服務在http & https地址中均可用。當我編譯客戶端代碼(使用Visual Studio)來使用http端點地址時,它工作正常,但是我想使用https地址,我無法調用任何服務操作(我已經啓用了transportSender & transportReceiver for https協議在客戶端的axis2.xml中)。
似乎WSDL2C中沒有選項用於生成啓用了SSL的C代碼,那麼我應該怎麼做才能通過https協議調用服務操作?
我應該通過任何編譯器標誌或設置任何環境變量來做到這一點?如何使用wsdl2c工具構建啓用SSL的客戶端代碼以便與axis2一起使用?

回答

0

沒有其他選項來構建SSL客戶端。您只需像往常一樣構建客戶端,但要調用HTTPS服務而不是HTTP,則必須設置HTTPS端點而不是HTTP。

實施例:

const axis2_char_t* address = NULL; 

if (doing_https) { 
    /* using HTTPS endpoint */ 
    address = "https://localhost:9090/axis2/services/echo"; 
} else { 
    /* using HTTP endpoint */ 
    address = "http://localhost:9090/axis2/services/echo"; 
} 

/* Create EPR with given address */ 
endpoint_ref = axis2_endpoint_ref_create(env, address); 

/* Setup options */ 
options = axis2_options_create(env); 
axis2_options_set_to(options, env, endpoint_ref); 

/* Create client */ 
svc_client = axis2_svc_client_create(env, client_home); 

/* Set service client options */ 
axis2_svc_client_set_options(svc_client, env, options); 

..... 
+0

沒有選項以使在客戶端C代碼SSL,但Axis2的必須配置&使用--enable-OpenSSL的標誌&HTTPS傳輸處理程序編譯必須在客戶端的axis2啓用.xml(或在客戶端代碼中)。 –

相關問題