IOS下使用GSOAP(客户端)
欢迎访问论坛:http://www.chinadev.cn
http://download.csdn.net/detail/zzzili/4881810
1.根据Wsdl文件地址生成客户端文件
下载文件,然后在控制台下输入一下命令
cd /Users/jilucky/Desktop/zzzili/gsoap/qxd
./wsdl2h -o QXDService.h http://192.168.1.100:1000/ClientService.asmx?WSDL
./soapcpp2 -C -x QXDService.h
wsdl2h 和soapcpp2在我发的file.zip里面
命令运行完之后会生成许多文件
将这些文件都放到一个gsoap文件夹里面去(添加进去gsoapios.h和gsoapios.m)
2.xcode新建ios工程,添加gsoap文件夹(此处还要加入stdsoap2.cpp 和stdsoap2.h 文件,我漏掉了)
3.在main.m文件中添加
#import "Gsoap/FriendGPSSoap.nsmap" ///文件名根据你的情况而定
在ViewController.m中添加
#import "soapStub.h"
#import "gsoapios.h"
4.build setting 中GCC_INPUT_FILETYPE 设置为Objective-C++ ///会出现vector.h找不到
5.build工程,会出现lib错误,这个时候吧gsoap中的soapClientLib.cpp文件移除,再次运行
********另外附送本人写的soap分装类 CSoap.h
//
// CGsoap.h#import <Foundation/Foundation.h>
#import "soapStub.h"
#import "gsoapios.h"@interface CGsoap :NSObject
{struct soap *m_soap;}-(id)init;
-(BOOL) Login:(NSString*)userId pass:(NSString*)_pass;@end
//
// 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
IOS 中图片的上传
UIImage *image= [info objectForKey:UIImagePickerControllerOriginalImage];NSString *filePath = [NSTemporaryDirectory() stringByAppendingFormat:@"tmp.png"];NSLog(@"filename is %@", filePath);[UIImageJPEGRepresentation(image, 0) writeToFile:filePath atomically:YES];NSData *tData = [NSData dataWithContentsOfFile:filePath];imageData = [tData mutableCopy];
[g_soap GetImagePath:imageData];-(NSString *)GetImagePath:(NSData *)image
{NSString *path = [[NSString alloc]initWithFormat:@""];_ns1__getImageByte request;xsd__base64Binary *newByte = new xsd__base64Binary;newByte->__ptr = (unsigned char*)image.bytes;newByte->__size = image.length;request.getByte = newByte;_ns1__getImageByteResponse response;soap_call___ns3__getImageByte(m_soap, NULL, NULL, &request, &response);path = DecodeUtf8(response.getImageByteResult);NSLog(@"image path is %@",path);return path;
}
//sdk中提供了方法可以直接调用
UIImage *img = [UIImage imageNamed:@"some.png"];
NSData *dataObj = UIImageJPEGRepresentation(img, 1.0);
交流qq:825127671
IOS下使用GSOAP(客户端)相关推荐
- ios小项目——新浪微博客户端总结
2019独角兽企业重金招聘Python工程师标准>>> 们还是登录不了,你们要用还是得自己申请appkey并且把回调网址设为baidu.或者是再下面留言,留下你的微博uid我把你加入 ...
- ios下使用rsa算法与php进行加解密通讯
首先了解一下几个相关概念,以方便后面遇到的问题的解决: RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字.算法基于一个数 ...
- ios:新浪微博iphone客户端
这算是自己做的第一个比较完整的ios的小应用程序,接触到了很多自己以前没怎么用到的东西,好像coredata,GCD,post发送请求,自定义UITableViewCell等等. 先介绍下这个小应用吧 ...
- Windows PC、Linux、Android、iOS 跨平台视频云客户端 QML 开发解决方案
Windows PC.Linux.Android.iOS 跨平台视频云客户端 QML 开发解决方案 SkeyeARS (Skeye Video Augmented Reality System) 全景 ...
- iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge
WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star.我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以 ...
- iOS下JS与OC互相调用(一)--UIWebView 拦截URL
1.在JS 中做一次URL跳转,然后在OC中拦截跳转.(这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做.) 2.利用WKW ...
- iOS下bound,center和frame
---恢复内容开始--- 本文转发至:http://www.xuebuyuan.com/1846606.html 在写程序的时候发现,iOS下的坐标.位置很容易弄乱,特别是在不同的坐标系统中,必须完成 ...
- Mac下python3配置opencv3 3和Mac下单独opencv的配置以及iOS下配置opencv
#1.Mac下python3配置opencv3.3 新手受任开发一个功能,需要用到opencv.但python和opencv连接出现问题,看了大概有上百份博客的解决办法,都没有解决,快要放弃了,解决了 ...
- iOS下的 Fixed BUG
input 光标位置乱窜 固定式浮层内的输入框光标会发生偏移.即 fixed 定位的容器中输入框光标的位置显示不正确,没有正常地显示在输入框中,而是偏移到了输入框外面 可触发条件 页面body出现滚动 ...
最新文章
- EventBank闪耀企业服务 荣获“2017中国企业服务云年度产品”奖
- 分享一个JDK1.8丢失数字精度的案例
- npm安装依赖包报错
- 动手使用ABAP Channel开发一些小工具,提升日常工作效率 1
- javascript --- js中的事件
- 各个线程顺序循环执行
- 报警服务器物理内存,从内存告警谈ESXi主机内存管理——内存构成
- 随想录(学习消费类soc芯片)
- Spark开源学习模块
- cmake指定输出安装目录
- 2022最新爱思助手怎么用 爱思助手使用方法【教程】
- mysql 分隔字符串的函数_Mysql 字符串分隔函数
- CCD(像素)与视觉系统的基础知识
- Altium Designer-快速画封装,图解
- golang 通过docker 搭建 ocr识别
- Windows添加route
- linux 开放5222端口,XMPP协议、IM、客户端互联详解
- 如何区分光接入网OLT, ONU, ODN,ONT?
- Zcoin 项目评级:BB ,展望稳定 | TokenInsight
- 华为无线基于黑白名单认证上网