23

Mam sytuację, w której muszę uzyskać dostęp do nieprzetworzonych danych odpowiedzi dla AFJSONRequestOperation, z bloku wywołania zwrotnego zawierającego tylko NSHTTPURLResponse. Jestem w stanie uzyskać statusCode z NSHTTPURLResponse, ale nie widzę żadnego sposobu na uzyskanie nieprzetworzonych danych. Czy istnieje dobry sposób, że każdy wie, aby uzyskać dostęp do tego z bloku oddzwaniania awarii tej operacji?Jak uzyskać dane odpowiedzi z NSHTTPURLResponse w wywołaniu zwrotnym AFJSONRequestOperation?

Odpowiedz

35

NSHTTPURLResponse zawiera tylko informacje nagłówka HTTP; brak danych o ciele. Więc nie, to byłoby niemożliwe. Jeśli masz jakąkolwiek kontrolę nad tym kodem, prześlij blok lub metodę przez samą operację i uzyskaj responseData lub responseJSON.

+0

Matt, tak właśnie myślałem i skończyłem, odnosząc się do operacji, aby uzyskać odpowiedźData, ale z pewnością czuje się niezdarnie w ten sposób. Czy rozważałeś dodanie alternatywnej metody oprócz obecnej, która zwraca responseData oraz NSHTTPURLResponse? –

+0

Jaką metodę mówisz? Wszystkie metody AFN, które mają wywołania zwrotne, zwracają wszystko, co powinieneś wiedzieć o stanie operacji - konkretnie obiekt operacji wraz z kilkoma innymi istotnymi częściami. – mattt

+0

Mam na myśli konkretnie metodę JSONRequestOperationWithRequest: success: failure: –

-2

Stare pytanie, ale w każdym razie ...

Nie trzeba dostać się do przedmiotu pracy, można łatwo zrobić coś takiego:

NSData * data = [NSJSONSerialization dataWithJSONObject:JSON options:0 error:nil]]; 

z identyfikatorem JSON że zwrotna odbiera .

+0

Obiekt JSON może być zerowy w bloku oddzwaniania, ponieważ może to być przyczyną niepowodzenia z powodu niewłaściwego json. –

Powiązane problemy