.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