iOS 개발 AFNetworking 프레임워크
AFN 네트워크 요청 및 파일 업로드 다운로드
AFN 프레임워크를 사용하여 네트워크 데이터 요청을 처리하다가 다음 오류가 발생했습니다.
// ,
// self.requestSerializer =[AFHTTPRequestSerializer serializer];
//AFHTTPRequestSerializer ( )
//AFJSONRequestSerializer JSON
// AFPropertyListRequestSerializerPList
// ( JSON)
// self.responseSerializer =[AFJSONResponseSerializerserializer];
// AFHTTPResponseSerializer
// AFJSONResponseSerializer JSON ( )
//AFXMLParserResponseSerializer XML
//AFImageResponseSerializer Image
// ( , SDWebImage)
서버 측에서 작업을 제대로 하지 않아 발생한 오류와 처리 방법에 대해 설명합니다.
해결 방법 1: 바로 AFHTTPResponseSerializer로 갑니다.m 파일에서 acceptableContentTypes 속성 init 방법을 찾아 텍스트/html를 직접 추가합니다
// AFN
- (instancetype)init {
self = [super init];
if (!self) {
return nil;
}
// @"text/html" , unlock
self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];
return self;
}
해결 방법 2: 코드에서 AFN에서 사용하는 방법으로 acceptable ContentTypes 속성의 값을 수정하는 것입니다.
// mgr
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
// , new ,
mgr.responseSerializer = [AFJSONResponseSerializer new];
mgr.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", nil];
AFN 쿠키 사용
// cookie
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage]cookiesForURL:[NSURL URLWithString:url]];
for (NSHTTPCookie *tempCookie in cookies)
{
// cookies
NSLog(@"getCookie:%@",tempCookie);
}
NSDictionary *Request = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies];
// cookie
[[NSUserDefaults standardUserDefaults] setObject:[Request objectForKey:@"Cookie"] forKey:@"mUserDefaultsCookie"];
[[NSUserDefaults standardUserDefaults] synchronize];
// cookie
[session.requestSerializer setValue:[[NSUserDefaults standardUserDefaults]objectForKey:@"mUserDefaultsCookie"]forHTTPHeaderField:@"Cookie"];
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.