Опубликовать запрос с Afnetworking
-
11-12-2019 - |
Вопрос
Я новичок в программировании, особенно в сети сети.Так что теперь я создаю приложение для взаимодействия с Instagram.В моем проекте я использую AfnetWorking.Я видел их документацию и много примеров здесь.И я еще не понимаю, как получить сообщение запроса на API Instagram.Пожалуйста, не могли бы вы дать мне реальный код примера или что-то, где я могу прочитать о том, как выполнять эту операцию?Пожалуйста помоги.Я пытался сделать так, как это не дает никаких ошибок и нет ответа.Это ничего не дает: (
(IBAction)doRequest:(id)sender{
NSURL *baseURL = [NSURL URLWithString:@"http://api.instagram.com/"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:baseURL];
[httpClient defaultValueForHeader:@"Accept"];
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
user_token, @"access_token",
nil];
[httpClient postPath:@"/feed" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
// reponseObject will hold the data returned by the server.
NSLog(@"data: %@", responseObject);
}failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error retrieving data: %@", error);
}];
NSLog(@"click!!");
}
. Решение
Несколько вещей, чтобы заботиться о.
API Instagram API возвращает JSON, чтобы вы могли использовать AfjsonRequestOperation, которая вернет уже Parsed Nsdictionary.
API Instagram говорит, что:
Все конечные точки доступны только через https и расположены в API.instagram.com.
Вы должны внести изменения в вашу BASITURL.
.AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:yourURL]; NSURLRequest *request = [client requestWithMethod:@"POST" path:@"/your/path" parameters:yourParamsDictionary]; AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { // Do something with JSON } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { // }]; // you can either start your operation like this [operation start]; // or enqueue it in the client default operations queue. [client enqueueHTTPRequestOperation:operation];