iOS下WebService接口调用与解析-一、Soap对象的封装
来源:互联网 发布:人工智能大会2017 编辑:程序博客网 时间:2024/06/01 19:35
封装Soap对象
Soap对象是对请求体的简单封装,免去重复而又容易出错的拼接工作。
首先是头文件:SOAPMessage.h
#import <Foundation/Foundation.h>@interface SOAPMessage : NSObject@property (nonatomic, strong) NSString *nameSpace;@property (nonatomic, strong) NSString *methodName;@property (nonatomic, strong) NSDictionary *params;- (SOAPMessage *)initWithNameSpace:(NSString *)nameSpace withMethodName:(NSString *)method withParams:(NSDictionary *)params;/** * 创建SOAP消息,内容格式就是网站上提示的请求报文的实体主体部分 */- (NSString *)getSoapMessage;@end
头文件中,定义了三个属性,分别为:
- nameSpace:命名空间
- methodName:方法名
- params:方法名对应的参数列表
一个初始化方法:
- (SOAPMessage )initWithNameSpace:(NSString )nameSpace withMethodName:(NSString )method withParams:(NSDictionary )params;
包含三个参数,对应定义的三个属性。
最后一个方法的作用是将封装后的SOAP类型的xml对象转换成NSString。
然后是实现:SOAPMessage.m
#import "SOAPMessage.h"@interface SOAPMessage ()- (NSString *) generateMethod;- (NSString *) generateParams:(NSDictionary *)dict;@end@implementation SOAPMessage- (SOAPMessage *)initWithNameSpace:(NSString *)nameSpace withMethodName:(NSString *)methodName withParams:(NSDictionary *)params { if(self =[super init]) { self.nameSpace = nameSpace; self.methodName = methodName; self.params = params; } return self;}- (NSString *)getSoapMessage { NSString *soapMsg = [NSString stringWithFormat: @"<?xml version=\"1.0\" encoding=\"utf-8\"?>" "<soap12:Envelope " "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " "xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">" "<soap12:Body>" "%@" //"<say xmlns=\"http://service.core.soft.com\">" //"<name>%@</name>" //"</say>" //"<getSupportCity xmlns=\"http://WebXml.com.cn/\">" //"<byProvinceName>%@</byProvinceName>" //"</getSupportCity>" "</soap12:Body>" "</soap12:Envelope>", [self generateMethod]]; return soapMsg;}- (NSString *) generateMethod { NSString *result = [[NSString alloc] initWithFormat:@"<%@ xmlns=\"%@\">%@</%@>", [self methodName], [self nameSpace], [self generateParams:[self params]], [self methodName]]; return result;}- (NSString *) generateParams:(NSDictionary *)dic { NSMutableString *params = [NSMutableString string]; for (id key in [dic allKeys]) { NSString *param = @"<%@>%@</%@>"; NSString *p = [[NSString alloc]initWithFormat:param, key, [dic objectForKey:key], key]; [params appendString:p]; } return params;}@end
0 0
- iOS下WebService接口调用与解析-一、Soap对象的封装
- ios webservice编程:soap封装调用,返回xml,json解析
- ios 进阶 -- 调用webservice接口(soap协议)的方法
- iOS调用WebService(SOAP接口)
- 如何用IOS调用WebService(SOAP接口)
- 如何用IOS调用WebService(SOAP接口)
- iOS调用SOAP协议的WebServices接口
- cxf 解析调用外部soap类型的webservice
- 关于SOAP调用返回对象的写法 wsdl webservice
- SOAP的接口调用
- 基于CXF框架下的SOAP Webservice服务端接口开发
- Stub方式接口化封装axis2 webservice:实现衍生对象与原始对象的相互转换
- Javascrpit调用webservice接口(soap方式)
- iOS 调用Webservice接口
- iOS --调用webservice接口
- webservice接口soap请求报文的xml字段顺序必须与wsdl中定义的顺序一致才能解析正确
- 基于Java的webservice创建与soap方式调用
- webservice接口的生成与调用
- 重温KMP
- 数组与指针的区别
- HTML5本地存储:SessionStorage, LocalStorage, Cookie
- 关键词分析和查找工具
- 装饰者模式
- iOS下WebService接口调用与解析-一、Soap对象的封装
- 【ArcGIS 10.5 产品白皮书】第一章 走近ArcGIS平台2
- Qt:在程序中获取源码被编译的日期和时间
- Ubuntu16.04内核编译流程
- 463. Island Perimeter
- xml文件的解析与jvm内存调整
- SpringMVC 分析(二) handlerMapping 家族
- 2016最新PHP燕十八系统实战入门网站视频教程
- mac安装Awscli失败