iOS 基于AFNetworking 调用 Web services 接口

来源:互联网 发布:与连接网络相关的单词 编辑:程序博客网 时间:2024/06/01 19:39



第一次看见这种接口也是有点摸不着头脑,不过大概的搜下资料,你也因该能清楚了

什么是webserver:http://www.mamicode.com/info-detail-436872.html.

Webservice ,Http ,Ftp比较区别:http://blog.csdn.net/m1654399928/article/details/49179933

使用AFNetworking 调用 Web services 接口:

+ (void)POST:(NSString *)url soapBody:(NSString *)soapBody success:(void (^)(id responseObject))success failure:(void(^)(NSError *error))failure {        NSString *soapStr = [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:Header>\                         </soap:Header>\                         <soap:Body>%@</soap:Body>\                         </soap:Envelope>",soapBody];        AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    manager.responseSerializer = [AFXMLParserResponseSerializer serializer];        manager.responseSerializer = [AFHTTPResponseSerializer serializer];        // 设置请求头    [manager.requestSerializer setValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];    [manager.requestSerializer setValue:[NSString stringWithFormat:@"%zd", soapStr.length] forHTTPHeaderField:@"Content-Length"];        // 设置HTTPBody    [manager.requestSerializer setQueryStringSerializationWithBlock:^NSString *(NSURLRequest *request, NSDictionary *parameters, NSError *__autoreleasing *error) {        return soapStr;    }];        [manager POST:url parameters:soapStr progress:^(NSProgress * _Nonnull downloadProgress) {    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {      //解析    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {         }];}
调用:

    NSString *body =    [NSString stringWithFormat:     @"<Reg xmlns=\"http://tempuri.org/\">\      <uid>%@</uid>\     <pwd>%@</pwd>\     </Reg>",self.name.text,self.pwd.text];    NSString *url = [@"请求地址" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];    [Networking POST:url soapBody:body success:^(id responseObject) {        NSLog(@"responseObject-%@",responseObject);     } failure:^(NSError *error) {    }];

链接:http://www.cocoachina.com/bbs/read.php?tid-456019-page-1.html

有关 XML 命名空间的更多详细信息:Namespaces in XML (XML 命名空间)

有关 WSDL 的更多详细信息:WSDL Specification (WSDL 规范)

有关 URI 的更多详细信息: RFC 2396









1 0
原创粉丝点击