Intereting Posts
как преобразовать английскую дату в арабскую дату ios swift Может ли viewDidLoad называться несколько раз? Какие факторы следует принимать во внимание при принятии решения о разработке версии iOS? iOS Kobold Kit, как отключить отладку на экране (gpu: renderer: … и т. д.)? Где сохранить файлы в приложениях iOS 5? Могу ли я использовать contentScaleFactor для безопасного сохранения памяти? Логические проблемы с numberOfItemsInSection: Тепловая карта для iPhone Обратный звонок после анимации на новую MKMapCamera Как защитить табличное представление от сбоев во время insertRowsAtIndexPaths и вращения устройства Библиотека Objective C, импортированная в проект Swift через мостовой заголовок, может быть видна только в AppDelegate, а не в других классах Каков наиболее эффективный способ отправки информации с сервера на мой iPhone? Таймер таймера UIApplication SpriteKit: что вызывает touchsMoved, чтобы остановить вызов? Как я могу сортировать / фильтровать NSArray для следующих нужд?

AFNetworking (400 ошибок при POST)

мой URL-адрес правильный, но мой запрос должен быть неверным. Я получаю 400. Любые идеи? В документации по API говорится, что он может вернуть 400, если были переданы параметры вместо тела JSON. Заранее спасибо.

- (void)postFeedItem:(NSDictionary *)paramDict Response:(void (^)(id))callbackBlock Failure:(void (^)())failure { NSString *targetUrl = [NSString stringWithFormat:@"%@/services/data/v23.0/chatter/feeds/user-profile/%@/", _appManager.coordinator.credentials.instanceUrl, [_appManager.userInformation objectForKey:@"sfUserId"]]; AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:targetUrl]]; /* { "body" : { Request body example: "messageSegments" : [ { "type": "Text", "text" : "New post" } ] } } */ NSArray *arr = [NSArray arrayWithObjects: [NSDictionary dictionaryWithObjectsAndKeys:@"Text", @"type", @"New post", @"text", nil], nil]; NSDictionary* info = [NSDictionary dictionaryWithObjectsAndKeys: [NSDictionary dictionaryWithObjectsAndKeys:arr, @"messageSegments", nil], @"body", nil]; NSLog(@"JSON: %@", [[NSString alloc] initWithData:[self toJSON:info] encoding:NSUTF8StringEncoding]); NSMutableURLRequest *request = [client multipartFormRequestWithMethod:@"POST" path:@"feed-items" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { [formData appendData:[self toJSON:info]]; }]; [request setValue:[NSString stringWithFormat:@"OAuth %@",_appManager.coordinator.credentials.accessToken] forHTTPHeaderField:@"Authorization"]; [request addValue:@"false" forHTTPHeaderField:@"X-Chatter-Entity-Encoding"]; [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { NSLog(@"success"); } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { NSLog(@"FAILED CHATTER Request: %@ - %@ - %@", [request URL], [request allHTTPHeaderFields], error.description); }]; [operation start]; 

}

Вот NSLog:

2012-09-19 18: 10: 54.732 RingDNA Free [6018: c07] __47- [ChatterHelper postFeedItem: Response: Failure:] _ block_invoke_087 [Строка 76] FAILED CHATTER Запрос: https://na4.salesforce.com/services/data /v23.0/chatter/feeds/user-profile/00560000001j3paAAA/feed-items – {"Accept-Encoding" = gzip; «Accept-Language» = «en, fr, de, ja, nl, it, es, pt, pt-PT, da, fi, nb, sv, ko, zh-Hans, zh-Hant, ru, pl, tr , uk, ar, hr, cs, el, he, ro, sk, th, id, ms, en-GB, ca, hu, vi, en-us; q = 0,8 "; Авторизация = «OAuth 00D60000000KV29! ARkAQFWhnhOtcGFgVMT4MkZHCV3zG9SY4en66718BiG_ZY59W0gR1iSWA8i.ey_b94vqjRW_RQITALBWmfpPrKTGk"; «Content-Type» = «multipart / form-data; border = Boundary + 0xAbCdEfGbOuNdArY, application / json"; «User-Agent» = «com.ringdna.dreamforce.RingDNA-Free / 36 (неизвестно, iPhone OS 5.1, iPad Simulator, Scale / 1.000000)»; «X-Chatter-Entity-Encoding» = false; } – Ошибка домена = com.alamofire.networking.error Код = -1011 «Ожидаемый код состояния [число индексов: 100 (в 1 диапазоне), индексы: (200-299)], получено 400« UserInfo = 0xa2a8b40 {NSErrorFailingURLKey = https://na4.salesforce.com/services/data/v23.0/chatter/feeds/user-profile/00560000001j3paAAA/feed-items, NSLocalizedDescription = Ожидаемый код состояния [количество индексов: 100 (в 1 диапазоне), индексы : (200-299)], получил 400}

Мы выяснили это после нескольких попыток. В основном SFDC проверяет порядок параметров, которые вы отправляете в API Chatter, появляется. Образцы кода для рабочих сообщений Chatter находятся в Github сейчас, если это помогает кому-либо еще:

https://github.com/kyleroche/Dreamforce-2012