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
How to do GET request via AFNetworking?
提问by Chanchal Raj
I added directories AFNetworking
and UIKit+AFNetworking
to project manager.
I use latest library 3.0.4
我添加了目录AFNetworking
和UIKit+AFNetworking
项目经理。我使用最新的库 3.0.4
After I imported file AFNetworking.h
in 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 AFHTTPRequestOperation
was 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{
}
}];
}
}