AFHTTPClient 인스턴스에 다음 메시지를 보냅니다. 성공 블록은 Foundation 객체 (사전)로 보내지지만 JSON은 _NSCFData 객체라는 것을 디버거에서 알 수 있습니다. This question on SO에 Accept 헤더를 'application/json'으로 설정해야한다고 나와 있습니다. 글쎄, 나는 그렇게하고있다.하지만 AFNetworking은 여전히 응답 본문에서 JSON을 디코딩하지 않는다. NSJSONSerialization을 사용하여 json을 직접 디코딩하면 NSDictionary를 얻을 수 있습니다. 내가 도대체 뭘 잘못하고있는 겁니까?AFNetworking은 JSON 대신 _NSCFData 객체를 반환합니다.
[client setDefaultHeader:@"Accept" value:@"application/json"];
[client postPath:@"/app/open_connection/"
parameters:params
success:^(AFHTTPRequestOperation *operation, id JSON) {
NSLog(@"successful login! %@", [JSON valueForKeyPath:@"status"]);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error opening connection");
NSAlert *alert = [NSAlert alertWithError:error];
[alert runModal];
}
];
참고 : 저는 장고를 사용하여 파이썬으로 서버를 프로그래밍하고 있습니다. 응답의 콘텐츠 유형은 'application/json'입니다.
를 추가해보십시오 [클라이언트 registerHTTPOperationClass : [AFJSONRequestOperation 클래스]]; –