Chuyển đổi curl sang Objective-C
Chuyển đổi các lệnh curl thành mã Objective-C bằng NSURLSession. curl2code chạy hoàn toàn trong trình duyệt của bạn thông qua WebAssembly — dữ liệu của bạn luôn được riêng tư. Đối với Swift, hãy thử trình chuyển đổi curl sang Swift của chúng tôi. Đối với C, hãy xem curl sang C. Dưới đây là các ví dụ Objective-C sẵn sàng sử dụng.
Cách sao chép curl từ trình duyệt của bạn
- 1
Mở DevTools
Nhấn F12 hoặc Ctrl+Shift+I để mở công cụ dành cho nhà phát triển của trình duyệt.
- 2
Đi tới tab Network
Nhấp vào tab Network và thực hiện hành động kích hoạt yêu cầu HTTP.
- 3
Sao chép dưới dạng cURL
Nhấp chuột phải vào yêu cầu → Sao chép → Copy as cURL. Sau đó dán nó vào bên trên.
Câu hỏi thường gặp
NSURLSession là gì?
NSURLSession là API framework Foundation của Apple cho mạng HTTP trong Objective-C (và Swift). Nó xử lý các tác vụ dữ liệu, tải xuống, tải lên và truyền tải nền. Có sẵn trên iOS 7+, macOS 10.9+. Không cần phụ thuộc bên thứ ba — đây là cách tiêu chuẩn để thực hiện các yêu cầu HTTP trong các nền tảng của Apple. curl2code tạo mã NSURLSession cho Objective-C.
NSURLSession so với AFNetworking — nên sử dụng cái nào?
NSURLSession là giải pháp tích hợp sẵn — đủ cho hầu hết các nhu cầu và không có phụ thuộc. AFNetworking từng phổ biến trong quá khứ nhưng hiện đang ở chế độ bảo trì; người kế nhiệm của nó là Alamofire (Swift). Đối với các dự án Objective-C mới, NSURLSession được khuyến nghị. Đối với Swift, hãy xem trình chuyển đổi curl sang Swift của chúng tôi.
Làm thế nào để xử lý xác thực trong Objective-C?
Thiết lập header trên NSMutableURLRequest: [request setValue:@"Bearer token" forHTTPHeaderField:@"Authorization"]. Đối với xác thực Basic, hãy mã hóa thông tin xác thực bằng NSData và base64EncodedStringWithOptions:. curl2code chuyển đổi các cờ -u và Bearer sang cú pháp Objective-C chính xác.
Làm thế nào để gửi dữ liệu form multipart trong Objective-C?
Xây dựng thân multipart với NSMutableData: thêm các chuỗi boundary, dữ liệu trường và dữ liệu tệp với các dấu phân cách CRLF thích hợp. Thiết lập Content-Type với boundary. Việc này được thực hiện thủ công nhưng mang lại toàn quyền kiểm soát. AFNetworking đơn giản hóa việc này với AFHTTPRequestSerializer.
Làm thế nào để xử lý lỗi HTTP trong Objective-C?
Các completion handler của NSURLSession cung cấp một tham số NSError — hãy kiểm tra nó để biết các lỗi mạng/truyền tải. Ép kiểu phản hồi sang NSHTTPURLResponse và kiểm tra statusCode. Sử dụng các phương thức delegate của NSURLSession để xử lý lỗi chi tiết hơn bao gồm các thử thách xác thực và chuyển hướng.
Làm thế nào để làm việc với các completion block trong NSURLSession?
NSURLSession sử dụng các callback dựa trên block: [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { ... }]. Luôn gọi [task resume] để bắt đầu. Đối với các yêu cầu tuần tự, hãy lồng các block hoặc sử dụng các dispatch group với dispatch_group_notify.
Làm thế nào để thiết lập timeout trong Objective-C?
Thiết lập trên NSURLSessionConfiguration: config.timeoutIntervalForRequest = 30 và config.timeoutIntervalForResource = 300. Hoặc trên từng yêu cầu: request.timeoutInterval = 30. Các lỗi timeout sẽ đến dưới dạng NSURLErrorTimedOut trong tham số error. Các thiết lập này tương ứng với tùy chọn --max-time của curl.
Làm thế nào để sử dụng proxy với NSURLSession?
Thiết lập connectionProxyDictionary trên NSURLSessionConfiguration với các khóa như (NSString *)kCFNetworkProxiesHTTPProxy và cổng. NSURLSession tuân thủ các cài đặt proxy trên toàn hệ thống theo mặc định trên macOS và iOS. Đối với các tệp PAC, hãy cấu hình thông qua tùy chọn hệ thống.
Làm thế nào để gửi một yêu cầu POST với thân JSON trong Objective-C?
Chuyển đổi một lệnh curl POST như curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL sang Objective-C bằng cách sử dụng curl2code. Mã được tạo sử dụng [request setHTTPBody:[NSJSONSerialization dataWithJSONObject:dict options:0 error:nil]]. curl2code tự động phát hiện các cờ -d/--data với nội dung JSON và thiết lập header Content-Type phù hợp trong mã NSURLSession.
Làm thế nào để thêm xác thực Bearer token trong Objective-C?
Cung cấp curl -H "Authorization: Bearer YOUR_TOKEN" URL cho curl2code và nó sẽ tạo mã NSURLSession với header xác thực: [request setValue:@"Bearer TOKEN" forHTTPHeaderField:@"Authorization"]. curl2code phát hiện Bearer tokens từ cả hai cờ -H "Authorization: Bearer ..." và --oauth2-bearer. Đối với Basic auth, hãy sử dụng -u user:pass.
Làm thế nào để thiết lập header Content-Type trong Objective-C?
curl2code chuyển đổi curl -H "Content-Type: application/json" URL sang mã NSURLSession với header chính xác: [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]. Đối với dữ liệu -d, curl mặc định là application/x-www-form-urlencoded; đối với tải lên biểu mẫu -F, nó sử dụng multipart/form-data. curl2code ánh xạ từng loại tới NSURLSession API chính xác.