因为有些Web Service参数要求有顺序,所以参数使用了NSArray
+ (NSData *) SoapCall:(NSString *)method PostData:(NSString *)post
{
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
[postData autorelease];
NSString *soapAction = [NSString stringWithFormat:@"%s/%@",SoapPrefix , method ];
NSURL *url=[[NSURL alloc]initWithString:[ [ NSString alloc ] initWithUTF8String: SoapURL ] ];
NSMutableURLRequest *request=[[NSMutableURLRequest alloc]init];
[request setTimeoutInterval: 10 ];
[request setCachePolicy:NSURLRequestReloadIgnoringCacheData];
[request setURL: url ] ;
[request setHTTPMethod:@"POST"];
[request setValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setValue:soapAction forHTTPHeaderField:@"SOAPAction"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
NSError *err=nil;
NSData *data=[NSURLConnection sendSynchronousRequest:request
returningResponse:nil
error:&err];
return data ;
}
+ (NSData *)SoapInvoke:(NSString *)method params:(NSArray *)params
{
NSMutableString * post = [[ NSMutableString alloc ] init ] ;
[ post autorelease ];
[ post appendString:
@"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""
" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n"
"<soap:Body>\n" ];
[ post appendString:@"<"];
[ post appendString:method];
[ post appendString:@">\n"];
for (NSDictionary *dict in params)
{
NSString *value = nil;
NSString *key = [[dict keyEnumerator] nextObject];
if (key != nil)
{
value = [dict valueForKey:key];
[ post appendString:@"<"];
[ post appendString:key];
[ post appendString:@">"];
if( value != nil )
{
[ post appendString:value];
}
else
{
[ post appendString:@""];
}
[ post appendString:@"</"];
[ post appendString:key];
[ post appendString:@">\n"];
}
}
[ post appendString:@"</"];
[ post appendString:method];
[ post appendString:@">\n"];
[ post appendString:
@"</soap:Body>\n"
"</soap:Envelope>\n"
];
// NSString *filePath = [[NSBundle mainBundle] pathForResource:@"login" ofType:@"json"];
// NSString *test = [NSString stringWithContentsOfFile:filePath];
NSLog(@"====================request=========================\n%@\n", post);
return [self SoapCall:method PostData:post];
}
分享到:
相关推荐
这是iPhone开发之UIPageControl示例程序,具体参考: http://blog.csdn.net/htttw/article/details/7888322
ios url 调用百度app 和 调用web 百度地图 iphone
iPhone开发入门基础 示例 UICatalog 包含各种基本控件使用 表视图 最基础 最优先看的小工程
iPhone官方解析XML示例-XMLPerformance,iPhone官方Demo
iphone 新浪微博 示例程序 iphone 新浪微博 示例程序
Windows CE下模拟IPhone滑动效果的示例代码,实现界面滑动效果实现代码。
iPhone Safari Web开发经验
这是iPhone开发之UIWebView示例程序,具体参考: http://blog.csdn.net/htttw/article/details/7888557
在iPhone和后台系统的通信中,使用Web Service获取服务器数据上最常见的一种形式。 而在Web Service通信中,数据交换格式通常上使用XML数据,XML数据也是软件开发中普遍存在的一种格式, 因此XML解析也就成为项目...
直接调用iPhone自带的地图程序实现导航
这是iPhone之手势切换图片示例程序,具体参考: http://blog.csdn.net/htttw/article/details/7881955
iphone 简单动画示例源码,实现了点击按钮,按钮再画面上漂流的功能。
iPhone 解析XML示例-KissXML,iphone代码实例
原创 iphone 示例 教程 为新手准备
Android开发 仿iPhone风格对话框示例源码 这个对话框完全继承、仿照AlertDialog,只是实现了自定义效果。 另外,没有实现setIcon,因为iphone中的对话框多数都没有图标。 附件包含例子、jar包、jar包源码。
iphone调用aws.amazon.com的云数据库simpledb 包含IOS例子源代码和api手册 用免费的数据库服务器,看看大家用得着不,可以省一笔服务器成本了,祝大家早日做出挣钱的游戏 一次失败的腾讯面试真是激励自己努力学习哈....
经过3.1.3真机测试,模拟器不能调用摄像头. 例子代码 调用iphone摄像头拍照,并在照相窗口加上了选择框,可以移动选择框选择拍照区域.
使用SQLite创建数据库,然后用FMDB对其操作得到数据。相信你下了后一定能明白是怎么用FMDB来实现操作数据iphone数据库的。
这是iPhone之手动切换View示例程序,具体参考: http://blog.csdn.net/htttw/article/details/7879534
在IOS系统中使用json访问web service的例子,适用于IPHONE5