IOS下使用GSOAP(客户端)
http://download.csdn.net/detail/zzzili/4881810
1.根据Wsdl文件地址生成客户端文件
下载文件,然后在控制台下输入一下命令
将这些文件都放到一个gsoap文件夹里面去(添加进去gsoapios.h和gsoapios.m)
2.xcode新建ios工程,添加gsoap文件夹(此处还要加入stdsoap2.cpp 和stdsoap2.h 文件,我漏掉了)
3.在main.m文件中添加
//// CGsoap.m#import "CGsoap.h"NSString* DecodeUtf8(std::string* s){ if(s==NULL) return @""; NSString *strName = [NSString stringWithCString:s->c_str() encoding:NSUTF8StringEncoding]; const char *abc = [strName cStringUsingEncoding:NSUTF8StringEncoding]; NSString *str = [[NSString alloc] initWithBytes:abc length:strlen(abc) encoding:NSUTF8StringEncoding]; return str;}@implementation CGsoap-(id)init{ m_soap = new struct soap; soap_init(m_soap); soap_set_mode(m_soap, SOAP_C_UTFSTRING); m_soap->mode|=SOAP_C_UTFSTRING; return (self);}-(Member*) Login:(NSString*)phone pass:(NSString*)_pass{ _ns1__UserLogin request; request.phone = new std::string([phone UTF8String]); request.pss = new std::string([_pass UTF8String]); _ns1__UserLoginResponse response; if(SOAP_OK== soap_call___ns2__UserLogin(m_soap, NULL, NULL, &request, &response)) { if(response.UserLoginResult->Name != nil) { ns1__Member *resm = response.UserLoginResult; Member *member = new Member; NSLog(@"login success"); member->Id = resm->Id; member->Name = DecodeUtf8(resm->Name); member->Phone = DecodeUtf8(resm->Phone); member->Ps = DecodeUtf8(resm->Ps); return member; } } return nil; }@end
交流qq:825127671