Ошибка публикации AFHTTPRequestOperationManager

Мой код здесь:

AFHTTPRequestOperationManager *managers = [AFHTTPRequestOperationManager manager];

NSMutableDictionary *parDic = [NSMutableDictionary dictionary];

[parDic setObject:@"admin" forKey:@"userId"];

[parDic setObject:@"1" forKey:@"password"];

  [managers POST:@"http://posttestserver.com/post.php?" parameters:par success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
    NSLog(@"sucess");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

Он печатает это:Error: Error Domain=AFNetworkingErrorDomain Code=-1016 "Request failed: unacceptable content-type: text/plain"

Но когда я использую кухонный тест этого запроса, он работает нормально. Почему? Пожалуйста, помогите мне, большое спасибо!


person Jerry GaGa    schedule 12.11.2013    source источник
comment
См. этот stackoverflow.com/a/19121229/1545180.   -  person Ganapathy    schedule 12.11.2013
comment
Эта ошибка может быть связана с тем, что вы не начинаете свою операцию...[начало операции];   -  person Kirit Modi    schedule 12.11.2013
comment
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@text/html]; добавьте эту строку и попробуйте, как указано в приведенной выше ссылке.   -  person Ganapathy    schedule 12.11.2013
comment
Спасибо за Ваш ответ   -  person Jerry GaGa    schedule 12.11.2013


Ответы (2)


Следуйте приведенному ниже коду i успешно его

NSString *StringUrl = [NSString stringWithFormat:@"%@?userId=%@&password=%@",YourUrl,@"admin",@"1"];

    NSURLRequest *UrlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:StringUrl]];

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

    operation.responseSerializer = [AFJSONResponseSerializer new];

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

         NsLog(@"Success == %@",ResponseObj);


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

         NsLog(@"Error == %@",[error localizedDescription])

     }];

    [operation start];
person Kirit Modi    schedule 12.11.2013
comment
Извините, я забыл какой-то код. Ваш метод является методом GET, но я хочу использовать метод POST. Спасибо. - person Jerry GaGa; 12.11.2013

эта строка сработала для меня после того, как я попробовал все остальное:

operation.responseSerializer = [сериализатор AFCompoundResponseSerializer];

NSString *strdata =[NSString stringWithFormat:@"{\"objID\":\"%ld\",\"objString\":\"%@\",\"objWidth\":\"%@\",\"objHeight\":\"%@\",\"objStartX\":\"%@\",\"objStartY\":\"%@\",\"objEndX\":\"%@\",\"objEndY\":\"%@\",\"objSnapX\":\"%@\",\"objSnapY\":\"%@\",\"objImage\":\"%@\"}",
                    (long)self.accelerometerObject.objID,
                    self.accelerometerObject.objString.string,
                    self.accelerometerObject.objWidth,
                    self.accelerometerObject.objHeight,
                    self.accelerometerObject.objStartX,
                    self.accelerometerObject.objStartY,
                    self.accelerometerObject.objEndX,
                    self.accelerometerObject.objEndY,
                    self.accelerometerObject.objSnapX,
                    self.accelerometerObject.objSnapY,
                    self.accelerometerObject.objImage];
NSLog(@"%@",strdata);
NSDictionary *parameters = @{
                             @"data" : strdata,
                             };
AFHTTPRequestOperationManager *requestOperationManager = [AFHTTPRequestOperationManager manager];
requestOperationManager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
NSString *requestURL = @"http://yourserver.com/dataHandler.asmx/scriptToHandlePost";
requestOperationManager.responseSerializer = [AFCompoundResponseSerializer serializer];
requestOperationManager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
[requestOperationManager POST:requestURL
                   parameters:parameters
                      success:^(AFHTTPRequestOperation *operation, id responseObject)
 {
     NSLog(@"Succeeded:    >>>>>>> %@",strdata);
 }
                      failure:^(AFHTTPRequestOperation *operation, NSError *error)
 {
     NSLog(@">>>>>>>>>>>failed %@",error);
 }];
person Trevor Jordet    schedule 12.08.2014