我使用WSDL2C创建了客户端存根代码,用于访问axis2 Web服务。我的服务有http和& https地址。当我编译客户端代码(使用visual studio)使用http端点地址时,它工作正常,但后来我想使用https地址,我不能调用任何服务操作(我已经启用了transportSender和amp; transportReceiver for https客户端的axis2.xml中的协议)
似乎WSDL2C中没有用于生成启用SSL的C代码的选项,那么我应该怎样做才能通过https协议调用服务操作?
我应该传递任何编译器标志还是设置任何环境变量来执行此操作?
答案 0 :(得分: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);
.....