AFN调用webservice

调用webservice接口大致有三种方式,分别是SOAP请求、Http Get请求和Http Post请求,GET和POST可以尝试访问webserviceAddress/methodname 通过传入NSDictionary@{key:value}形式的params的来获取结果,只是返回的数据是一个xml文档,需要再次解析或者通过截取字符串的方式来获取有用的json字符串,soap方式的话需要自己封装soap请求体,下面给出了soap请求的具体例子:

注:当前控制器需遵守NSXMLParser协议,并实现parser方法,用来解析返回的xml文件,获取最终的json字符串。

-(void)getResponse{

//封装soap请求消息
NSString *soapMessage = [NSString stringWithFormat:
                         @"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
                         "<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/\">\n"
                         "<soap:Body>\n"
                         "<MethodName xmlns=NameSpace>\n"
                         "<param1>%@</param1>\n"
                         "<param2>%@</param2>\n"
                         "</MethodName>\n"
                         "</soap:Body>\n"
                         "</soap:Envelope>\n"
                         ,param1Value,param2Value];




//请求发送到的路径
NSURL *url = [NSURL URLWithString:@"webservice Address"];



AFHTTPSessionManager *manager =[AFHTTPSessionManager manager];

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

manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
//manager.responseSerializer = [AFHTTPResponseSerializer serializer];

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

    return soapMessage;
}];

[manager POST:url.absoluteString parameters:soapMessage progress:^(NSProgress * _Nonnull downloadProgress) {


} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    // NSString *result = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

    NSLog(@"success-----%@",responseObject);

    [responseObject setDelegate:self];

    //开始解析
    [responseObject parse];

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

    NSLog(@"failure---------Error: %@", error);

}];

}

pragma mark - NSXMLParser代理

-(void)parser:(NSXMLParser )parser foundCharacters:(NSString )string
{
NSLog(@”parser string = %@”,string);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值