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?
23
A
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
.
-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
- 1. AFNetworking nie wysyła nagłówka autoryzacji z AFJSONRequestOperation
- 2. Skorzystaj z off() bezpośrednio w wywołaniu zwrotnym on() Firebase?
- 3. Jak zapisać i pobrać stan w wywołaniu zwrotnym()?
- 4. Jak sprawdzić zmodyfikowaną wartość w wywołaniu zwrotnym before_save modelu?
- 5. Jak uzyskać numer linii źródłowej dzwoniącego javascript w wywołaniu zwrotnym JSNative SpiderMonkey?
- 6. Jak uzyskać dane odpowiedzi z RestSharp do pobrania dla użytkownika?
- 7. Ustal, czy rekord "jest nowy" w wywołaniu zwrotnym przed zapisaniem
- 8. DWScript: jak uzyskać wynik po wywołaniu
- 9. Jak uzyskać status odpowiedzi jQuery.ajax?
- 10. Jak uzyskać nagłówki odpowiedzi w Selenium?
- 11. Jak uzyskać wartości odpowiedzi url w Asp.NET
- 12. Jak mogę uzyskać bieżący identyfikator pracownika w sprzężeniu zwrotnym?
- 13. Jak uzyskać tekst odpowiedzi DELETE z TIdHttp?
- 14. Jak uzyskać dane z ajax.done()?
- 15. Kiedy NSURLResponse nie jest NSHTTPURLResponse?
- 16. Jak uzyskać bieżącą długość odpowiedzi z http.ResponseWriter
- 17. Jak uzyskać nagłówki odpowiedzi z żądania suds
- 18. Jak wyodrębnić dane z odpowiedzi SOAP w języku Java?
- 19. Jak można odczytać dane z nagłówka odpowiedzi w jQuery/javascript
- 20. Zmienne dane w wywołaniu ajax JQUERY
- 21. Jak wykryć, czy załącznik do spinacza został zmieniony w wywołaniu zwrotnym after_save?
- 22. jQuery parsować dane odpowiedzi ajax i uzyskać identyfikator elementu - wartość
- 23. Dane odpowiedzi dostępu w powrocie oddzwonienia
- 24. Jak uzyskać nagłówki odpowiedzi iframe?
- 25. Jak uzyskać nagłówki odpowiedzi w AJAX
- 26. Jak uzyskać wartość w nagłówku odpowiedzi Angular2
- 27. Jak uzyskać adres URL odpowiedzi w XMLHttpRequest?
- 28. Jak uzyskać dane HttpRequestMessage
- 29. Czy AFNetworking może zwracać dane synchronicznie (wewnątrz bloku)?
- 30. Jak uzyskać tylko kod odpowiedzi z żądania HTTP w Ruby
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? –
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
Mam na myśli konkretnie metodę JSONRequestOperationWithRequest: success: failure: –