使用AFNetWorking+XMLDictionary调用、解析Webservice
列表内容 (1)工具: (2)使用: 方法:getSupportCityString 分析: 2.AFNetWorking使用方法 请求及解析实例代码: //URL
NSString *webServiceUrl = @"http://www.webxml.com.cn/WebServices/WeatherWS.asmx";
//参数值
NSString *theCityCode = @"nanjing";
//请求体拼接
NSString *soapMessage = [NSString stringWithFormat: @"<?xml version="1.0" encoding="utf-8"?>"
"<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">"
"<soap:Body>"
"<getSupportCityString xmlns="http://WebXml.com.cn/">"
"<theRegionCode>%@</theRegionCode>"
"</getSupportCityString>"
"</soap:Body>"
"</soap:Envelope>",theCityCode];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//请求头设置
[manager.requestSerializer setValue:@"www.webxml.com.cn" forHTTPHeaderField:@"Host"];
[manager.requestSerializer setValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[manager.requestSerializer setValue:@"http://WebXml.com.cn/getSupportCityString" forHTTPHeaderField:@"SOAPAction"];
//请求体设置
[manager.requestSerializer setQueryStringSerializationWithBlock:^NSString * _Nonnull(NSURLRequest * _Nonnull request,id _Nonnull parameters,NSError * _Nullable __autoreleasing * _Nullable error) {
return soapMessage;
}];
//设置返回XMLParser数据解析类型
manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
[manager POST:webServiceUrl parameters:soapMessage progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task,id _Nullable responSEObject) {
//XMLDictionaryParser解析
XMLDictionaryParser *parser = [XMLDictionaryParser sharedInstance];
NSDictionary *data = [parser dictionaryWithParser:responSEObject];
//所有数据
// NSLog(@"Data:%@",data);
//需要的内容
NSDictionary *dic = [data valueForKey:@"soap:Body"];
NSLog(@"Data:n%@",dic);
} failure:^(NSURLSessionDataTask * _Nullable task,NSError * _Nonnull error) {
NSLog(@"Error:%@",error);
}];
注: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 基于文件长度的动态vim字体大小
- twitter-bootstrap-3 – Container-fluid vs .container
- angularjs – 带后端api的webpack-dev-server
- Axis2: 用Axis2的0配置方式实现第一个WebService(1)
- WebService CXF学习(入门篇5):CXF+Spring+Hibernate
- 如何设置bootstrap navbar活动类与Angular JS?
- angularjs实现行事历
- Scala:为什么SortedMap的mapValues返回Map而不是SortedMap
- AngularJS:我不能在ng-click上设置一个变量值?
- 向OpenLDAP添加条目