- 浏览: 85285 次
- 性别:
- 来自: 成都
最新评论
.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 488How Do I Declare A Block in Obj ... -
禁止WebView长按事件
2015-11-04 16:05 1152在webViewDidFinishLoad调用: - (voi ... -
一个公共的TableView,然后不会为每个TableView加delegate和datasource
2015-10-27 10:46 971.h // // PublicTableView.h // ... -
记录一些不错的文章
2015-10-09 20:04 582好久没有写ios了,这篇文章主要是记录一些看到的不错的文章: ... -
封装录音View
2015-06-26 16:13 576使用方法: 直接把XHRecrodView添加到control ... -
压缩图片,如果图片大于100kb,就循环压缩
2015-06-02 10:37 2249// 压缩图片,如果图片大于100kb,就循环压缩 + (NS ... -
weakSelf
2015-05-11 14:44 536快速的定义一个weakSelf 当然是用于block里面啦 ... -
UINavigationItem 位置问题
2015-05-06 14:09 1000解决ios7 UINavigationItem 位置偏移问题 ... -
ios Icon及启动图集合
2015-05-04 09:13 626做icon和启动图按这个尺寸来 -
把图片压缩到指定大小(kb)
2015-01-19 16:32 4984UIImage *image=[UIImage imageNa ... -
获取当前时间属于该月的第几周
2015-01-06 15:04 1080+(NSInteger) indexWeekOfDateInM ... -
iOS开发的一些奇巧淫技
2014-12-31 11:13 741iOS开发的一些奇巧淫技 http://www.coco ... -
iOS中使用block进行网络请求回调
2014-06-23 16:26 5504转自: http://www.tuicool.com/arti ... -
ios程序异常crash捕获与拦截
2014-06-06 22:09 532转:http://www.sharejs.com/codes/ ... -
设置TabBar选中与未选中图片
2014-04-29 18:07 662-(void)settingTabbarController{ ... -
自定义的NavigationBar,我觉得还不错
2014-04-28 18:03 558地址1:http://code.cocoachina.com ... -
UITableView点击展开cell
2014-04-25 15:14 103581.定义控制cell的两个变量 //最近打开的ind ... -
分享一个非常好的东西
2014-04-09 17:44 690http://makeappicon.com/ 传一个10 ... -
IOS 基于APNS消息推送原理与实现(JAVA后台)
2014-04-09 17:30 905转:http://cshbbrain.iteye.com/bl ... -
ios开发申请发布证书和发布应用到app store
2014-03-21 11:03 7111.http://www.360doc.com/content ...
相关推荐
Android 基于 Retrofit2+Okhttp3 通过SOAP协议请求WebService
Android 基于 Retrofit2+Okhttp3 通过SOAP协议请求WebService
一个比较简单的使用post方式请求webservice的小例子,其中还包含一个文web项目,只要简单的部署就可以运行代码了。
以上就是Retrofit+Soap对webservice进行访问请求具体实现,该实现是通过String字符串的拼接,传输过程中转化为xml数据格式来实现的。
cxf 请求webService 方式 xml
ajax跨域请求WebService.asmx,程序非常完美的跑起来了。辛苦了一下午整理出来的。怕的就是以后自己忘记了。
android请求webservice,以前没有找到封装的工具类,这里是对ksoap2-android-assemble的封装,可通过一行代码实现网络请求并获取数据,里面有大量的注释,可作为学习
Java原生HttpUrlConnection访问WebService实例,附相关jar包...新手整理不喜勿喷
超简单的webservice调用demo,对hutool工具进行简单的封装,只需要输入webservice接口名、接口参数即可进行webservice接口调用,欢迎大家吐槽
在不能引用其他jar包的情况调用webservice有时可以解决jar引用和冲突的问题
java webservice 接口客户端请求 xml、json格式请求代码 soapui模式 拿过去直接应用即可
NULL 博文链接:https://1193605999.iteye.com/blog/2210417
1.(WebService带参数Post请求 )方法实现和方法调用。 2.(WebService接口)WebService应用程序的创建不在介绍,百度介绍更详细。
httpwebrequest调用webservice返回数据
1 目标:将WebService和客户端部署在不同的服务器,由客户端请求服务。 2 原理:Nginx将不同域的HTTP服务、网站放入统一的域中,规避跨域问题。 不同的服务器位置于不同的域。JavaScript安全性不允许POST的跨域...
webservice webservice webservice webservice
希望用http协议的能可以帮到大家!很有使用价值!大家可以看看!
java代码-使用java解决http请求SOAP webService接口的源代码 ——学习参考资料:仅用于个人学习使用!
webservice client tools webservice 客户端代码 生成工具