2016-05-09 11 views
0

私は、同じ質問に対して複数の回答を行って...しかし、このissue..iを把握することができないが、このエラーAFNetworkingは、POSTリクエストのパラメータとしてJSONを送信

* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* +[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write'

を取得しています

私のコードは次のとおりです。

NSDictionary *loginDict=[[NSDictionary alloc] initWithObjectsAndKeys:password.text,@"password",userName.text,@"userName",nil]; 
NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:loginDict               options:NSJSONWritingPrettyPrinted                error:&error]; 
if (jsonData) { 
     NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
} else { 
     NSLog(@"Got an error: %@", error); 
} 


AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
[manager.requestSerializer setTimeoutInterval:20]; 
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments]; 

[manager POST:baseUrlLogin parameters:jsonString 
     success:^(AFHTTPRequestOperation *operation, id responseObject) { 
     NSLog(@"JSON: %@", responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
     NSLog(@"Error: %@", error); 
}]; 
+0

これらの設定だけを試してください。 'AFHTTPResponseSerializer * responseSerializer = [AFHTTPResponseSerializer serializer]; responseSerializer.acceptableContentTypes = [NSSet setWithObject:@ "application/json"]; manager.responseSerializer = responseSerializer; AFJSONRequestSerializer * requestSerializer = [AFJSONRequestSerializerシリアライザ]。 manager.requestSerializer = requestSerializer; ' – iphonic

+0

@iphonic:あなたのお返事ありがとうございました...私は同じエラーを試みましたが、同じエラーが発生しました –

+0

このloginDictから何が得られましたか –

答えて

3

この

は、直接お電話でloginDictを渡し、チェックしてみてください

manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
/* 
[manager.requestSerializer setTimeoutInterval:20]; 
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments]; 
*/ 
[manager POST:baseUrlLogin parameters: loginDict 
    success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"JSON: %@", responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 
+1

に感謝しかし、私はjson..there問題にパラメータを渡す必要がありますが、あなたのコードはちょっとおかげで罰金仲間 –

+0

を開始しました私はそれをコメントしたとき、それは働いている..しかし、私は理由を取得しませんでした –

+0

これを試す –

関連する問題