欢迎访问论坛: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(客户端)相关推荐

  1. ios小项目——新浪微博客户端总结

    2019独角兽企业重金招聘Python工程师标准>>> 们还是登录不了,你们要用还是得自己申请appkey并且把回调网址设为baidu.或者是再下面留言,留下你的微博uid我把你加入 ...

  2. ios下使用rsa算法与php进行加解密通讯

    首先了解一下几个相关概念,以方便后面遇到的问题的解决: RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字.算法基于一个数 ...

  3. ios:新浪微博iphone客户端

    这算是自己做的第一个比较完整的ios的小应用程序,接触到了很多自己以前没怎么用到的东西,好像coredata,GCD,post发送请求,自定义UITableViewCell等等. 先介绍下这个小应用吧 ...

  4. Windows PC、Linux、Android、iOS 跨平台视频云客户端 QML 开发解决方案

    Windows PC.Linux.Android.iOS 跨平台视频云客户端 QML 开发解决方案 SkeyeARS (Skeye Video Augmented Reality System) 全景 ...

  5. iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge

    WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star.我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以 ...

  6. iOS下JS与OC互相调用(一)--UIWebView 拦截URL

    1.在JS 中做一次URL跳转,然后在OC中拦截跳转.(这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做.) 2.利用WKW ...

  7. iOS下bound,center和frame

    ---恢复内容开始--- 本文转发至:http://www.xuebuyuan.com/1846606.html 在写程序的时候发现,iOS下的坐标.位置很容易弄乱,特别是在不同的坐标系统中,必须完成 ...

  8. Mac下python3配置opencv3 3和Mac下单独opencv的配置以及iOS下配置opencv

    #1.Mac下python3配置opencv3.3 新手受任开发一个功能,需要用到opencv.但python和opencv连接出现问题,看了大概有上百份博客的解决办法,都没有解决,快要放弃了,解决了 ...

  9. iOS下的 Fixed BUG

    input 光标位置乱窜 固定式浮层内的输入框光标会发生偏移.即 fixed 定位的容器中输入框光标的位置显示不正确,没有正常地显示在输入框中,而是偏移到了输入框外面 可触发条件 页面body出现滚动 ...

最新文章

  1. EventBank闪耀企业服务 荣获“2017中国企业服务云年度产品”奖
  2. 分享一个JDK1.8丢失数字精度的案例
  3. npm安装依赖包报错
  4. 动手使用ABAP Channel开发一些小工具,提升日常工作效率 1
  5. javascript --- js中的事件
  6. 各个线程顺序循环执行
  7. 报警服务器物理内存,从内存告警谈ESXi主机内存管理——内存构成
  8. 随想录(学习消费类soc芯片)
  9. Spark开源学习模块
  10. cmake指定输出安装目录
  11. 2022最新爱思助手怎么用 爱思助手使用方法【教程】
  12. mysql 分隔字符串的函数_Mysql 字符串分隔函数
  13. CCD(像素)与视觉系统的基础知识
  14. Altium Designer-快速画封装,图解
  15. golang 通过docker 搭建 ocr识别
  16. Windows添加route
  17. linux 开放5222端口,XMPP协议、IM、客户端互联详解
  18. 如何区分光接入网OLT, ONU, ODN,ONT?
  19. Zcoin 项目评级:BB ,展望稳定 | TokenInsight
  20. 华为无线基于黑白名单认证上网

热门文章

  1. 如何处理json数据
  2. vue vue-seamless-scroll 无缝滚动依赖
  3. android html5 加密,android studio MD5加密 示例代码
  4. 如何在国内开设美元账户进行美元投资?
  5. 【Linux】uptime命令详解平均负载
  6. 斗拱展开面积表_古建筑斗拱换算问题
  7. Atcoder AGC B Splatter Painting 记忆化+逆向模拟
  8. libuv介绍与编译
  9. Josephus问题(最后一个退出的人)
  10. 0基础如何学习安卓开发