`
wfkbyni
  • 浏览: 86972 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

AFNetWorking请求WebService

 
阅读更多
.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
分享到:
评论

相关推荐

    ios webservice请求

    在这个“ios webservice请求”的示例中,我们将深入探讨如何在iOS应用中实现对Web Service的调用。 首先,我们要了解iOS中的网络请求基础。iOS提供了多种API来进行网络请求,如NSURLConnection、NSURLSession以及第...

    Webservice传递泛型的案例,包括web服务端和mobile端

    在这个特定的案例中,我们关注的是在Web服务(WebService)中如何处理泛型,以及如何在移动设备(mobile端)上与之交互。泛型是C#编程语言中的一个重要特性,它允许我们在代码中创建可重用的类型安全的数据结构,而...

    IOS 调用.net webservice 和上传文件

    - **NSURLConnection**: iOS SDK提供了一个基础网络请求类`NSURLConnection`,它支持异步请求,可以用来发送HTTP请求到WebService。通过创建`NSMutableURLRequest`对象,设置HTTP方法(GET或POST),添加请求头,...

    iOS_webservice.zip

    最常用的库有NSURLSession(原生Apple API)和第三方库如AFNetworking,它们提供了简单易用的接口来发起GET、POST、PUT、DELETE等HTTP请求。 2. **JSON解析**: 由于JSON是Web服务中最常见的数据交换格式,因此iOS...

    利用webservice编写的简易QQ

    客户端可能使用了Android或iOS SDK,通过HTTP库如OkHttp或AFNetworking来调用Webservice接口。 3. **安全与隐私保护**:尽管这是一个简单的示例,但任何处理用户数据的应用都需要考虑安全性和隐私保护。在设计...

    IOS手机端应用程序调用WebService

    1. **网络请求库**:iOS开发者常用的网络请求库有NSURLSession(原生iOS提供的API)和第三方库如AFNetworking、Alamofire等。这些库简化了HTTP请求的处理,提供了异步请求、上传下载、参数序列化等功能。 2. **...

    xml.zip_iphone访问webservice视频_xml_数据解析

    - 在iOS开发中,通常使用URLSession或第三方库如AFNetworking来发起HTTP请求。 - GET请求用于获取Web服务中的数据,而POST请求可以提交数据到服务器。 - 需要处理网络请求的状态,如成功、失败、超时等。 3. **...

    webservice——ios

    - 第三方库如AFNetworking简化了网络请求,提供了更高级的功能,如自动管理请求队列、缓存策略等。 3. **JSON与XML解析** - Web服务通常返回JSON或XML格式的数据。在iOS中,我们可以使用`NSJSONSerialization`类...

    webservice-Objective-c

    【Objective-C与Web服务交互详解】 在iOS应用开发中,Objective-C是苹果官方推荐的编程语言之一,尤其在iOS SDK的早期版本中,Objective-C是...在实际项目中,还可以结合第三方库如AFNetworking,进一步简化网络编程。

    Hello_SOAP-getOffesetUTCTime

    1. **使用HTTP库**:比如AFNetworking或Alamofire,它们允许开发者直接构造HTTP POST请求,并将SOAP XML作为请求体发送。 2. **使用NSXMLParser或XMLParser**:解析XML并构造SOAP请求,然后通过HTTP库发送。 3. **...

    如何用IOS调用WebService(SOAP接口)

    本篇文章将介绍如何在iOS中调用WebService(SOAP接口),主要分为两种方法:一是使用WSDL2ObjC工具生成Objective-C类,二是通过网络请求直接解析XML响应。 ### 方法一:使用WSDL2ObjC工具 1. **获取WSDL文件**:...

    IOS调用WebServices(值得学习)

    在iOS中,可以使用`NSURLConnection`或者第三方库如`AFNetworking`来发送SOAP请求。创建SOAP请求时,需要构建一个SOAP envelop,包含方法名、参数等信息,并将其发送到Web Service的URL。 2. **RESTful API调用**:...

    (五)Java EE 5实现Web服务(Web Services)及多种客户端实例-移动客户端.rar

    移动客户端可以通过HTTP库(如Android的OkHttp或iOS的AFNetworking)发起请求,解析响应数据并显示给用户。对于JSON,可以使用Gson或Jackson库进行序列化和反序列化。 在实际开发中,还需要考虑安全性、性能优化、...

Global site tag (gtag.js) - Google Analytics