2015-07-26 2 views
0

У меня возникли проблемы с использованием AFNetworking для POST с x-www-form-urlencoded. Мой код выглядит следующим образом:Проблема с использованием AFNetworking для x-www-form-urlencoded POST

NSString *uniqueIdentifier = @"Bob's iPhone"; 
    NSString *code = self.textField.text; 



    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    manager.requestSerializer=[AFHTTPRequestSerializer serializer]; 
    NSDictionary *parameters = [[NSDictionary alloc] initWithObjectsAndKeys:@"1", @"rw_app_id",code,@"code",uniqueIdentifier,@"device_id", nil]; 
    [manager POST:@"http://www.somesite.co/promos/" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 
     NSLog(@"JSON: %@", responseObject); 
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
     NSLog(@"Error: %@",error); 
    }]; 

я получаю сообщение об ошибке: Error Domain = com.alamofire.error.serialization.response Код = -1011 "Ошибка запроса: запрещено (403)" UserInfo = 0x7f8f8bf49550 { NSUnderlyingError = 0x7f8f8bf59910 «Не удалось выполнить запрос: неприемлемый тип содержимого: текст/html»

Я гугле вокруг, чтобы попытаться исправить это и изменил запрос сериалайзер с:

manager.requestSerializer=[AFHTTPRequestSerializer serializer]; 

Не повезло. У меня работает мой сервер для этих запросов, используя NSURLSession. Но я хочу, чтобы он работал в AFNetworking. Может ли кто-нибудь дать мне несколько указаний на то, что я могу делать неправильно, пожалуйста?

ответ

1

это должно помочь

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"]; 

или использовать это для responseSerializer вместо requestSerializer

manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
+0

Я первый, и это работает, если мой сервер повторяет строку JSON. Однако, если это что-то еще, я получаю эту ошибку: Ошибка: Ошибка Домен = NSCocoaErrorDomain Code = 3840 «Операция не может быть выполнена. (Ошибка Cocoa 3840.)» (текст JSON не начинался с массива или объекта, и опция разрешить фрагменты не установлены.) Есть ли способ обойти это? – KexAri

+0

это должно помочь: AFJSONResponseSerializer * responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions: NSJSONReadingAllowFragments]; [self setResponseSerializer: responseSerializer]; –

+0

Получить эту ошибку сейчас: Ошибка: Ошибка домена = NSCocoaErrorDomain Code = 3840 «Операция не может быть выполнена (ошибка Cocoa 3840.)» (недопустимое значение вокруг символа 0.) UserInfo = 0x7fc161450340 {NSDebugDescription = Недопустимое значение вокруг символа 0 ., NSUnderlyingError = 0x7fc16165ea80 «Ошибка запроса: неудачный запрос (400)»} – KexAri

Смежные вопросы