AFNetworking 3.0 移除所有 NSURLConnection 相關類,僅保留基於 NSURLSession 的實現。若項目需將字典轉 NSData 再轉 NSInputStream 發送,需遷移到 Session 架構。
NSURLSession *session = [NSURLSession sharedSession];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"POST";
request.HTTPBody = jsonData; // 或設置 HTTPBodyStream
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
// 處理響應
}];
[task resume];
NSInputStream *stream = [NSInputStream inputStreamWithData:jsonData];
request.HTTPBodyStream = stream;
// 設置 Content-Length 等頭部
NSURLSessionUploadTask *uploadTask = [session uploadTaskWithStreamedRequest:request];
[uploadTask resume];
AFHTTPSessionManager 封裝了 Session,建議直接使用其 POST / PUT 方法,自動處理序列化與響應解析。AFHTTPRequestOperation、AFHTTPRequestOperationManager 均已棄用。拥抱 NSURLSession,放棄手寫 Stream 請求,利用 AFN 3.x 高級封裝提升開發效率與穩定性。