AFNetWorking请求WebService

.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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值