AFNetworking封装的网络请求

#import "AFNetworking.h"
typedef void(^SuccessBlock)(AFHTTPRequestOperation * operation, id responseObj);

typedef void(^FailBlock)(NSError * error, id responseObj);

#import <Foundation/Foundation.h>

@interface NetworkingManager : NSObject

- (void)postWithURL:(NSString *)url params:(NSDictionary *)params successAction:(SuccessBlock)success failAction:(FailBlock)failure;

@end
#import "NetworkingManager.h"

#define BASE_URL    @"http://zxxx.rimiedu.com/"

@implementation NetworkingManager

- (void)postWithURL:(NSString *)url params:(NSDictionary *)params successAction:(SuccessBlock)success failAction:(FailBlock)failure
{
    // 声明一个request
    NSMutableURLRequest * request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",BASE_URL,url]]];

    // 设置请求方式POST
    [request setHTTPMethod:@"POST"];
    // 设置请求参数,通过NSData
    [request setHTTPBody:[self HTTPBodyWithParams:params]];

    // 通过request初始化operation
    AFHTTPRequestOperation * operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

    // 设置网络请求结束后调用的block
    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        if (success) {
            success(operation,responseObject);
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        if (failure) {
            failure(error,operation);
        }
        NSLog(@"%@",error);
    }];

    // 开始请求
    [operation start];
}

- (NSData *)HTTPBodyWithParams:(NSDictionary *)params
{
    NSMutableArray * parameters = [NSMutableArray arrayWithCapacity:0];

    [params enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
        [parameters addObject:[NSString stringWithFormat:@"%@=%@",key,obj]];
    }];

    NSString * paramString = [parameters componentsJoinedByString:@"&"];
    NSLog(@"%@",paramString);

    return [paramString dataUsingEncoding:NSUTF8StringEncoding];

}

//loginid=11111&passss=123123
@end
时间: 2024-12-28 10:26:47

AFNetworking封装的网络请求的相关文章

基于AFNetworking封装的网络请求工具类

前提,导入AFNetworking框架 关于修改AFN源码:通常序列化时做对text/plan等的支持时,可以一劳永逸的修改源代码,在acceptableContentTypes中修改即可. GGRequest.h 1 #import <Foundation/Foundation.h> 2 3 @interface GGRequest : NSObject 4 /** 5 * 网络请求方法 6 * 7 * @param url 将要访问的链接 8 * @param param 传入的参数 9

iOS 自己封装的网络请求,json解析的类

基本上所有的APP都会涉及网络这块,不管是用AFNetWorking还是自己写的http请求,整个网络框架的搭建很重要. 楼主封装的网络请求类,包括自己写的http请求和AFNetWorking的请求,代码简单,主要是框架搭建.简单来说,就是一个请求类,一个解析类,还有若干数据类. 以下代码以公开的天气查询api为例: 1.网络请求类 我把常用的网络请求方法都封装好了,你只需要写自己的接口,传递apiName,params等参数就可以. #pragma mark ios请求方式 //ios自带的

block传值以及利用block封装一个网络请求类

1.block在俩个UIViewController间传值 最近刚学了几招block 的高级用法,其实就是利用block语法在俩个UIViewController之间传值,在这里分享给初学者,同时也方便我自己理解.我们知道UINavigationController类管理UIViewController的时候,利用的是"栈"的思想,在这里不做过多解释,切入正题,假设我们现在有俩个UIViewController,viewC1和viewC2,viewC1比viewC2先进入到UINavi

自己封装的网络请求

#import <Foundation/Foundation.h> //定义枚举typedef NS_ENUM(NSInteger){    LDT_GET,    LDT_POST}URLRequestMethod; //定义返回值block网络请求结果typedef void(^ResultBlock)(NSData *data,NSURLResponse *response,NSError *error); @interface LDTNetWorkRequestManager : NS

第八篇、封装NSURLSession网络请求框架

主要功能介绍: 1.GET请求操作 2.POST请求操作 1.处理params参数(例如拼接成:usename="123"&password="123") #import <Foundation/Foundation.h> @interface LYURLRequestSerialization : NSObject +(NSString *)LYQueryStringFromParameters:(NSDictionary *)paramete

31封装一个网络请求的服务

①创建一个服务类 @Injectable() 在服务类中定义方法.数据 sendRequest ( myUrl : string ) { return this.http.get( myUrl ).map(  (response : Response) => response.json()  ) } ②给服务指定提供商 providers : [ MyHttpService ]  模块.组件限定作用范围 ③调用服务 import { } this.myHttpService.sendRequse

HttpURLConnection封装异步网络请求

/** * Implementation of AsyncTask, to fetch the data in the background away from * the UI thread. */ private class DownloadTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... urls) { try { return loadFr

封装网络请求

封装网络请求类便捷, 适合多个地方使用. 第一封装下载方法 前提用Cocoapods或者直接引用第三方AFNetWorking 定义一个类NetWorkingManager, 继承于NSObject A: 在.h中写方法声明 #import <Foundation/Foundation.h> @interface NetWorkManager : NSObject - (void)downLoadWithUrl:(NSString *)url progress:(void(^)(float p

四种网络请求的方式封装网络请求

封装网络请求类便捷, 适合多个地方使用. 第一封装下载方法 前提用Cocoapods或者直接引用第三方AFNetWorking 定义一个类NetWorkingManager, 继承于NSObject A: 在.h中写方法声明 #import <Foundation/Foundation.h> @interface NetWorkManager : NSObject - (void)downLoadWithUrl:(NSString *)url progress:(void(^)(float p