18,356
社区成员
发帖
与我相关
我的任务
分享
int result=wsPHP.checklogin(.....) ///卡在这里result一直得不到值
if(result== SOAP_OK)
{
......//操作成功,进行后面操作
}
声明:static int checklogin(char * account, char * service, char * psw);
int wsClient::checklogin(char * account, char * service, char * psw)
{
soapSOAPProxy wsPHP; /////这个是代理类
struct __ns1__checkloginResponse response;
......
int result=wsPHP.checklogin(base64_account,psw,base64_service,"", GetLocalSystemName(),1,response.checkloginResponse);//////卡在这里不返回
if(result== SOAP_OK)
{
return 1;
}
else
return 0;
}
///////////////////////下面是代理类的的接口
int soapSOAPProxy::checklogin(std::string account, std::string passwd, std::string servicename, std::string ip, std::string os, int softtype, std::string &checkloginResponse)
{
struct soap *soap = this;
struct __ns1__checklogin soap_tmp___ns1__checklogin;
struct __ns1__checkloginResponse *soap_tmp___ns1__checkloginResponse;
const char *soap_action = NULL;
std::string endpoint;
std::string action;
CSysConfig::SetSoapEndPoint(endpoint);
CSysConfig::SetSoapAction(action,"checklogin");
if(endpoint.length() < 1)
endpoint = "http://*****.com/soapserver";
if(action.length() < 1)
action = "http://*****/soap/checklogin";
soap->encodingStyle = NULL;
soap_tmp___ns1__checklogin.account =account;
soap_tmp___ns1__checklogin.passwd = passwd;
soap_tmp___ns1__checklogin.servicename = servicename;
soap_tmp___ns1__checklogin.ip = ip;
soap_tmp___ns1__checklogin.os = os;
soap_tmp___ns1__checklogin.softtype = softtype;
soap->connect_timeout=10;
soap->recv_timeout=10;
soap->send_timeout=10;
soap->accept_timeout=10;
soap_begin(soap);
soap_serializeheader(soap);
soap_serialize___ns1__checklogin(soap, &soap_tmp___ns1__checklogin);
if (soap_begin_count(soap))
return soap->error;
if (soap->mode & SOAP_IO_LENGTH)
{ if (soap_envelope_begin_out(soap)
|| soap_putheader(soap)
|| soap_body_begin_out(soap)
|| soap_put___ns1__checklogin(soap, &soap_tmp___ns1__checklogin, "-ns1:checklogin", NULL)
|| soap_body_end_out(soap)
|| soap_envelope_end_out(soap))
return soap->error;
}
if (soap_end_count(soap))
return soap->error;
if (soap_connect(soap, /*soap_endpoint*/endpoint.c_str(), /*soap_action*/action.c_str())
|| soap_envelope_begin_out(soap)
|| soap_putheader(soap)
|| soap_body_begin_out(soap)
|| soap_put___ns1__checklogin(soap, &soap_tmp___ns1__checklogin, "-ns1:checklogin", NULL)
|| soap_body_end_out(soap)
|| soap_envelope_end_out(soap)
|| soap_end_send(soap))
return soap_closesock(soap);
if (!&checkloginResponse)
return soap_closesock(soap);
soap_default_std__string(soap, &checkloginResponse);
if (soap_begin_recv(soap)
|| soap_envelope_begin_in(soap)
|| soap_recv_header(soap)
|| soap_body_begin_in(soap))
return soap_closesock(soap);
soap_tmp___ns1__checkloginResponse = soap_get___ns1__checkloginResponse(soap, NULL, "-ns1:checkloginResponse", "");
if (soap->error)
return soap_recv_fault(soap, 0);
if (soap_body_end_in(soap)
|| soap_envelope_end_in(soap)
|| soap_end_recv(soap))
return soap_closesock(soap);
checkloginResponse = soap_tmp___ns1__checkloginResponse->checkloginResponse;
return soap_closesock(soap);
}