因为有些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示例程序”正是为了帮助开发者理解和应用这一功能。 UIPageControl的基本用法包括以下几个方面: 1. **初始化**:首先,你需要在你的视图控制器中创建一个UIPageControl实例,并将...
Web Map Service (WMS) 网络地图服务 Web Map Service (WMS) 是一种基于 HTTP 的网络地图服务标准,由 Open Geospatial Consortium (OGC) 制定,用于从一个或多个地理信息数据库传输有地理定位的地图图像数据。WMS ...
【标题】"iPhone开发入门基础 示例 UICatalog" 是一个针对初学者的iOS应用开发教程,重点在于介绍如何使用苹果的UIKit框架创建用户界面。这个教程通过一个名为"UICatalog"的实例项目,展示了多种常见的UI控件及其...
综上所述,开发一个iPhone上的新浪微博示例程序涵盖了从认证授权、API调用到用户界面设计、数据管理和网络通信等多个环节,对开发者的技术栈要求较高。通过实践这一示例,开发者不仅能掌握微博平台的接入,还能提升...
这个示例程序是针对iPhone平台,旨在帮助开发者理解如何有效地使用UIWebView来展示网页数据。通过这个例子,我们可以学习到以下几个关键知识点: 1. **UIWebView的引入**:UIWebView是UIKit框架的一部分,它提供了...
在这个"iphone FMDB 数据库操作示例"中,我们将深入探讨如何利用FMDB进行数据库的创建、查询、插入、更新和删除等基本操作。 首先,让我们了解一下FMDB的基本用法。在项目中引入FMDB库后,你可以通过以下步骤创建一...
iPhone 调用相机或者打开相册获取图片 本篇文章主要讲解了在 iPhone 中如何调用相机或者打开相册获取图片,并可以设置压缩比。通过本文,你将了解到如何使用 UIImagePickerController 获取图片,并进行裁剪处理。 ...
在Windows CE平台上,由于硬件和操作系统特性与Apple的iOS(iPhone的操作系统)存在显著差异,因此,模拟iPhone...通过这个压缩包提供的代码示例,开发者可以学习如何在限制资源的环境中创造出与iPhone相似的用户体验。
【标题】:“原创 iPhone 示例教程” 本教程专为初次接触 iPhone 使用的新手设计,旨在提供一个详尽且易懂的学习路径,帮助用户快速掌握 iPhone 的基本操作和实用技巧。通过一系列精心编排的教学材料,您将能够从零...
"iPhone之手势切换图片示例程序"是一个教程,旨在教你如何利用手势识别技术在iPhone应用中实现图片的平滑切换。这个示例程序可能包含了多个步骤,包括设置手势识别器、响应手势事件以及动态更新图片视图。 首先,...
在iPhone和后台系统的通信中,使用Web Service获取服务器数据上最常见的一种形式。 而在Web Service通信中,数据交换格式通常上使用XML数据,XML数据也是软件开发中普遍存在的一种格式, 因此XML解析也就成为项目...
本示例"iPhone官方解析XML示例-XMLPerformance"是苹果官方提供的一个Demo,旨在帮助开发者了解如何在iPhone平台上高效地解析XML文档。 首先,让我们来看看XML的基本概念。XML是一种自描述性的语言,它的结构由一...
在移动设备领域,尤其是苹果的iPhone,Web开发已经成为构建交互性强、用户体验良好的应用程序的重要途径。iUI是一款专门针对iPhone和类似设备的Web应用程序设计的开源框架,它允许开发者使用HTML、CSS和JavaScript来...
在iOS开发中,调用Google地图显示是一项常见的需求,尤其对于iPhone应用来说。这个名为"MapDemo"的项目很可能是为了演示如何在iPhone应用中集成并使用Google Maps SDK来显示地图。下面我们将深入探讨这个主题。 ...
总之,这个 `[RyanZhangCamera]` 示例代码展示了如何利用 `AVFoundation` 调用iPhone的摄像头,并在拍照界面上添加可移动的选择框。开发者可以根据这个基础进一步完善功能,例如添加多选框、实时预览裁剪效果等。
标题中提到的“IOS Client Call Web Service_asix2”暗示了本文档将涉及在iOS环境下通过客户端发起对WebService的调用。这意味着我们将探讨iOS应用如何与远程的网络服务进行交互。WebService是一种基于网络的分布式...
本篇文章将深入探讨如何在iPhone上创建和使用基于Web的时间控件,以及相关的技术细节和示例。 首先,我们需要理解Web页面在iPhone上的运行环境——Safari浏览器或WKWebView。在这些环境中,开发者可以使用HTML5、...
本教程将详细介绍如何利用Service和Activity之间的回调机制来实现这样的仿iPhone浮动窗口。 首先,我们需要理解Service的基本概念。在Android中,Service是一种在后台运行且不与用户交互的应用组件。它可以长时间...