AFNetworking
一、post请求
//url
NSString *urlString = @"http://47.95.207.40/branch/user/register";
//初始化一个AFHTTPSessionManager
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//设置请求体数据为json类型
manager.requestSerializer = [AFJSONRequestSerializer serializer];
//设置响应体数据为json类型
manager.responseSerializer = [AFJSONResponseSerializer serializer];
//请求体,参数(NSDictionary 类型)
NSDictionary *parameters = @{@"username":username,
@"account":account,
@"password":password
};
[manager POST:urlString parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];
二、get请求
AFHTTPSessionManager *manger = [AFHTTPSessionManager manager];
NSString *url = @"https://is.snssdk.com/api/news/feed/v51/?catagory=";
url = [url stringByAppendingString:title];
[manger GET:url parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];
三、当参数为表单时
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//这时候请求体参数不是json
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:url parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
//在这里写入表单参数
[formData appendPartWithFormData:[@"refresh_token" dataUsingEncoding:NSUTF8StringEncoding] name:@"grant_type"];
//refreshData是NSData类型的参数
[formData appendPartWithFormData:refreshData name:@"refresh_token"];
} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];