您的位置:首页 > 移动开发 > IOS开发

iOS AFnetWorking 请求webservice数据

2017-02-16 13:01 190 查看
#pragma mark  AFN
请求

- (void)SOAPDataByUrl:(NSString *)url

        webServiceStr:(NSString *)webServiceStr

              success:(void (^)(id responseObject))success

              failure:(void(^)(NSError *error))failure {

   
AFHTTPSessionManager *manager = [AFHTTPSessionManager
manager];

    manager.responseSerializer = [AFXMLParserResponseSerializer
serializer];

   
// 设置请求超时时间

    manager.requestSerializer.timeoutInterval =
30;

   
// 返回NSData

    manager.responseSerializer = [AFHTTPResponseSerializer
serializer];

   
// 设置请求头

    [manager.requestSerializer
setValue:@"text/xml; charset=utf-8"
forHTTPHeaderField:@"Content-Type"];

    [manager.requestSerializer
setValue:[NSString
stringWithFormat:@"%zd", webServiceStr.length]
forHTTPHeaderField:@"Content-Length"];

   
// 设置HTTPBody

    [manager.requestSerializer
setQueryStringSerializationWithBlock:^NSString *(NSURLRequest *request,
NSDictionary *parameters,
NSError *__autoreleasing *error) {

        return webServiceStr;

    }];

    [manager POST:url
parameters:webServiceStr
progress:^(NSProgress *
_Nonnull uploadProgress) {

    } success:^(NSURLSessionDataTask *
_Nonnull task, id 
_Nullable responseObject) {

       
// 请求成功并且结果有值把结果传出去

        if (success) {

           
// 把返回的二进制数据转为字符串

           
NSString *newStr = [[NSString
alloc] initWithData:responseObject
encoding:NSUTF8StringEncoding];

            // XML解析

            id resault =[[[XmlData
alloc]init]
dataFromXml:newStr
execType:@"1"];

            NSLog(@"AFN请求成功
") ;

            success(resault);

        }

    } failure:^(NSURLSessionDataTask *
_Nullable task, NSError *
_Nonnull error) {

        if (failure) {

            NSLog(@"AFN请求失败-%@",error);

            failure(error);

        }

    }];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐