- 浏览: 86972 次
- 性别:
- 来自: 成都
最新评论
.h
#import <Foundation/Foundation.h>
typedef void(^SuccessBlock)(NSString *dataString);
typedef void(^FialdBlock)(NSString *dataString);
@interface HttpRequest : NSObject
+(void)requestWtihParams:(NSDictionary *)params
withSuccessBlock:(SuccessBlock)successBlock
wihtFiladBlock:(FialdBlock)fialdBlock;
@end
.m
#import "HttpRequest.h"
#import "AFNetworking.h"
@implementation HttpRequest
+(void)requestWtihParams:(NSDictionary *)params withSuccessBlock:(SuccessBlock)successBlock wihtFiladBlock:(FialdBlock)fialdBlock{
// 使用af一般请求
/*AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] init];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/html",@"text/json",@"text/javascript", nil];
[manager POST:@"http://www.weather.com.cn/data/sk/101010100.html" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (successBlock != nil) {
successBlock(responseObject);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (fialdBlock != nil) {
fialdBlock(@"error");
}
}];
http://192.168.0.100/crmpack/Service/DataServiceJson.asmx
Printing description of methodName:
LoginBeforeInit
Printing description of cmdJson:
{"parameters":{"versionType":"3"}}
*/
// 使用af封装webservice请求
// 注意,这里的soapMessage要根据公司服务端定义而来
NSString *methodName = @"LoginBeforeInit";
NSString *p = @"{\"parameters\":{\"versionType\":\"3\"}}";
NSString *soapMessage = [NSString stringWithFormat:@"<?xml version=\"1.0\"?><soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:DataServiceJson=\"http://tempuri.org/\" xsl:version=\"1.0\">"
"<soap:Body><DataServiceJson:ExcuteBll>"
"<DataServiceJson:bllName>%@</DataServiceJson:bllName>"
"<DataServiceJson:cmdJson><![CDATA[%@]]></DataServiceJson:cmdJson>"
"</DataServiceJson:ExcuteBll></soap:Body></soap:Envelope>", methodName,p];
NSURL *url = [NSURL URLWithString:@"http://192.168.0.100/crmpack/Service/DataServiceJson.asmx"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%lu", (unsigned long)[soapMessage length]];
[request addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/soap+xml"];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
if ([responseObject isKindOfClass:[NSData class]]) {
NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSString *startflag = @"<ExcuteBllResult>";
NSString *endflag = @"</ExcuteBllResult>";
NSRange startRange = [str rangeOfString:startflag];
NSRange endRange = [str rangeOfString:endflag];
str = [str substringWithRange:NSMakeRange(startRange.location + startflag.length, endRange.location - startRange.location - startflag.length)];
NSLog(@"success: %@",str);
successBlock(str);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"faild: %@",error);
successBlock(error.domain);
}];
[operation start];
}
@end
#import <Foundation/Foundation.h>
typedef void(^SuccessBlock)(NSString *dataString);
typedef void(^FialdBlock)(NSString *dataString);
@interface HttpRequest : NSObject
+(void)requestWtihParams:(NSDictionary *)params
withSuccessBlock:(SuccessBlock)successBlock
wihtFiladBlock:(FialdBlock)fialdBlock;
@end
.m
#import "HttpRequest.h"
#import "AFNetworking.h"
@implementation HttpRequest
+(void)requestWtihParams:(NSDictionary *)params withSuccessBlock:(SuccessBlock)successBlock wihtFiladBlock:(FialdBlock)fialdBlock{
// 使用af一般请求
/*AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] init];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/html",@"text/json",@"text/javascript", nil];
[manager POST:@"http://www.weather.com.cn/data/sk/101010100.html" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (successBlock != nil) {
successBlock(responseObject);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (fialdBlock != nil) {
fialdBlock(@"error");
}
}];
http://192.168.0.100/crmpack/Service/DataServiceJson.asmx
Printing description of methodName:
LoginBeforeInit
Printing description of cmdJson:
{"parameters":{"versionType":"3"}}
*/
// 使用af封装webservice请求
// 注意,这里的soapMessage要根据公司服务端定义而来
NSString *methodName = @"LoginBeforeInit";
NSString *p = @"{\"parameters\":{\"versionType\":\"3\"}}";
NSString *soapMessage = [NSString stringWithFormat:@"<?xml version=\"1.0\"?><soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:DataServiceJson=\"http://tempuri.org/\" xsl:version=\"1.0\">"
"<soap:Body><DataServiceJson:ExcuteBll>"
"<DataServiceJson:bllName>%@</DataServiceJson:bllName>"
"<DataServiceJson:cmdJson><![CDATA[%@]]></DataServiceJson:cmdJson>"
"</DataServiceJson:ExcuteBll></soap:Body></soap:Envelope>", methodName,p];
NSURL *url = [NSURL URLWithString:@"http://192.168.0.100/crmpack/Service/DataServiceJson.asmx"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%lu", (unsigned long)[soapMessage length]];
[request addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/soap+xml"];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
if ([responseObject isKindOfClass:[NSData class]]) {
NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSString *startflag = @"<ExcuteBllResult>";
NSString *endflag = @"</ExcuteBllResult>";
NSRange startRange = [str rangeOfString:startflag];
NSRange endRange = [str rangeOfString:endflag];
str = [str substringWithRange:NSMakeRange(startRange.location + startflag.length, endRange.location - startRange.location - startflag.length)];
NSLog(@"success: %@",str);
successBlock(str);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"faild: %@",error);
successBlock(error.domain);
}];
[operation start];
}
@end
发表评论
-
block语法
2015-12-11 10:34 537How Do I Declare A Block in Obj ... -
禁止WebView长按事件
2015-11-04 16:05 1182在webViewDidFinishLoad调用: - (voi ... -
一个公共的TableView,然后不会为每个TableView加delegate和datasource
2015-10-27 10:46 997.h // // PublicTableView.h // ... -
记录一些不错的文章
2015-10-09 20:04 613好久没有写ios了,这篇文章主要是记录一些看到的不错的文章: ... -
封装录音View
2015-06-26 16:13 617使用方法: 直接把XHRecrodView添加到control ... -
压缩图片,如果图片大于100kb,就循环压缩
2015-06-02 10:37 2284// 压缩图片,如果图片大于100kb,就循环压缩 + (NS ... -
weakSelf
2015-05-11 14:44 558快速的定义一个weakSelf 当然是用于block里面啦 ... -
UINavigationItem 位置问题
2015-05-06 14:09 1028解决ios7 UINavigationItem 位置偏移问题 ... -
ios Icon及启动图集合
2015-05-04 09:13 685做icon和启动图按这个尺寸来 -
把图片压缩到指定大小(kb)
2015-01-19 16:32 5085UIImage *image=[UIImage imageNa ... -
获取当前时间属于该月的第几周
2015-01-06 15:04 1114+(NSInteger) indexWeekOfDateInM ... -
iOS开发的一些奇巧淫技
2014-12-31 11:13 769iOS开发的一些奇巧淫技 http://www.coco ... -
iOS中使用block进行网络请求回调
2014-06-23 16:26 5536转自: http://www.tuicool.com/arti ... -
ios程序异常crash捕获与拦截
2014-06-06 22:09 590转:http://www.sharejs.com/codes/ ... -
设置TabBar选中与未选中图片
2014-04-29 18:07 716-(void)settingTabbarController{ ... -
自定义的NavigationBar,我觉得还不错
2014-04-28 18:03 596地址1:http://code.cocoachina.com ... -
UITableView点击展开cell
2014-04-25 15:14 103861.定义控制cell的两个变量 //最近打开的ind ... -
分享一个非常好的东西
2014-04-09 17:44 721http://makeappicon.com/ 传一个10 ... -
IOS 基于APNS消息推送原理与实现(JAVA后台)
2014-04-09 17:30 992转:http://cshbbrain.iteye.com/bl ... -
ios开发申请发布证书和发布应用到app store
2014-03-21 11:03 7841.http://www.360doc.com/content ...
相关推荐
在这个“ios webservice请求”的示例中,我们将深入探讨如何在iOS应用中实现对Web Service的调用。 首先,我们要了解iOS中的网络请求基础。iOS提供了多种API来进行网络请求,如NSURLConnection、NSURLSession以及第...
在这个特定的案例中,我们关注的是在Web服务(WebService)中如何处理泛型,以及如何在移动设备(mobile端)上与之交互。泛型是C#编程语言中的一个重要特性,它允许我们在代码中创建可重用的类型安全的数据结构,而...
- **NSURLConnection**: iOS SDK提供了一个基础网络请求类`NSURLConnection`,它支持异步请求,可以用来发送HTTP请求到WebService。通过创建`NSMutableURLRequest`对象,设置HTTP方法(GET或POST),添加请求头,...
最常用的库有NSURLSession(原生Apple API)和第三方库如AFNetworking,它们提供了简单易用的接口来发起GET、POST、PUT、DELETE等HTTP请求。 2. **JSON解析**: 由于JSON是Web服务中最常见的数据交换格式,因此iOS...
客户端可能使用了Android或iOS SDK,通过HTTP库如OkHttp或AFNetworking来调用Webservice接口。 3. **安全与隐私保护**:尽管这是一个简单的示例,但任何处理用户数据的应用都需要考虑安全性和隐私保护。在设计...
1. **网络请求库**:iOS开发者常用的网络请求库有NSURLSession(原生iOS提供的API)和第三方库如AFNetworking、Alamofire等。这些库简化了HTTP请求的处理,提供了异步请求、上传下载、参数序列化等功能。 2. **...
- 在iOS开发中,通常使用URLSession或第三方库如AFNetworking来发起HTTP请求。 - GET请求用于获取Web服务中的数据,而POST请求可以提交数据到服务器。 - 需要处理网络请求的状态,如成功、失败、超时等。 3. **...
- 第三方库如AFNetworking简化了网络请求,提供了更高级的功能,如自动管理请求队列、缓存策略等。 3. **JSON与XML解析** - Web服务通常返回JSON或XML格式的数据。在iOS中,我们可以使用`NSJSONSerialization`类...
【Objective-C与Web服务交互详解】 在iOS应用开发中,Objective-C是苹果官方推荐的编程语言之一,尤其在iOS SDK的早期版本中,Objective-C是...在实际项目中,还可以结合第三方库如AFNetworking,进一步简化网络编程。
1. **使用HTTP库**:比如AFNetworking或Alamofire,它们允许开发者直接构造HTTP POST请求,并将SOAP XML作为请求体发送。 2. **使用NSXMLParser或XMLParser**:解析XML并构造SOAP请求,然后通过HTTP库发送。 3. **...
本篇文章将介绍如何在iOS中调用WebService(SOAP接口),主要分为两种方法:一是使用WSDL2ObjC工具生成Objective-C类,二是通过网络请求直接解析XML响应。 ### 方法一:使用WSDL2ObjC工具 1. **获取WSDL文件**:...
在iOS中,可以使用`NSURLConnection`或者第三方库如`AFNetworking`来发送SOAP请求。创建SOAP请求时,需要构建一个SOAP envelop,包含方法名、参数等信息,并将其发送到Web Service的URL。 2. **RESTful API调用**:...
移动客户端可以通过HTTP库(如Android的OkHttp或iOS的AFNetworking)发起请求,解析响应数据并显示给用户。对于JSON,可以使用Gson或Jackson库进行序列化和反序列化。 在实际开发中,还需要考虑安全性、性能优化、...