ios 如何通过 AFNetworking 进行 GET 请求?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/34639175/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 08:31:52  来源:igfitidea点击:

How to do GET request via AFNetworking?

iosafnetworking-2afnetworking-3

提问by Chanchal Raj

I added directories AFNetworkingand UIKit+AFNetworkingto project manager. I use latest library 3.0.4

我添加了目录AFNetworkingUIKit+AFNetworking项目经理。我使用最新的库 3.0.4

After I imported file AFNetworking.hin my class file .m. I found a lot examples how to make request to url, but information is old.

AFNetworking.h在我的类文件中导入文件后.m。我找到了很多如何向 url 发出请求的示例,但信息很旧。

How to make GET request to URL and get data from server? Now function AFHTTPRequestOperationwas removed.

如何向 URL 发出 GET 请求并从服务器获取数据?现在功能AFHTTPRequestOperation已被删除。

This is first time working with libraries in xcode, I am beginner.

这是第一次在 xcode 中使用库,我是初学者。

采纳答案by Akash

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://google.com/"]];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"GET"
                                                        path:@"http://google.com/api/pigs/"
                                                  parameters:nil];

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

[httpClient registerHTTPOperationClass:[AFHTTPRequestOperation class]];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

    // Print the response body in text
    NSLog(@"Response: %@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];
[operation start];

=============================================

==============================================

You can also use AFHTTPRequestOperation:

您还可以使用 AFHTTPRequestOperation:

NSOperationQueue *networkQueue = [[NSOperationQueue alloc] init];

networkQueue.maxConcurrentOperationCount = 5;

NSURL *url = [NSURL URLWithString:@"https://example.com"];

NSURLRequest *request = [NSURLRequest requestWithURL:url];

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] 
initWithRequest:request];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {


    NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

    NSLog(@"%@", string);

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

    NSLog(@"%s: AFHTTPRequestOperation error: %@", __FUNCTION__, error);
}];
[networkQueue addOperation:operation];

回答by Chanchal Raj

For AFNetworking 3.x:

对于 AFNetworking 3.x:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

回答by herry.master

please try below answer.
+(void)callAFWS:(NSDictionary *)dict withURL:(NSString *)strUrl 
withToken:(NSString *)strToken withBlock:(dictionary)block
{
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

[manager.requestSerializer setValue:strToken forHTTPHeaderField:@"Authorization"];

[manager GET:[NSString stringWithFormat:@"%@/%@",WebserviceUrl,strUrl] parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    if (!responseObject)
    {
        NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
        [dict setObject:ServerResponceError forKey:@"error"];
        block(responseObject);
        return ;
    }
    block(responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
    [dict setObject:ServerResponceError forKey:@"error"];
    block(dict);
}];
}

回答by Bhavin Trivedi

With AFNetworking 3.0 you need to make request as under:

使用 AFNetworking 3.0,您需要发出如下请求:

NSURL * urlStr = [NSURL URLWithString:strURL];

NSDictionary *dictParameters = @{@"user[height]": height,@"user[weight]": weight};

AFHTTPSessionManager * manager = [AFHTTPSessionManager manager];


[manager GET:url.absoluteString parameters:dictParameters success:^(NSURLSessionTask *task, id responseObject) {
    NSLog(@"PLIST: %@", responseObject);

} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Error: %@", error);

}];

回答by Slimshady

(void)postDatabyAF{

NSString *url;

NSDictionary *dict;

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

manager.responseSerializer = [AFJSONResponseSerializer serializer];

manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:
                              NSJSONReadingAllowFragments];

[manager POST:url parameters:dict success:^(AFHTTPRequestOperation * _Nonnull operation, id  _Nonnull responseObject) {

    NSLog(@" operation.responseData  %@",operation.responseData);
    NSLog(@" operation.response %@",operation.response);
    NSLog(@"statusCode %ld",operation.response.statusCode);

} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {

    if (error) {

    }
    else{


    }
}];

}

}