Конвертиране на curl в Objective-C
Конвертирайте curl команди в Objective-C код, използвайки NSURLSession. curl2code работи изцяло във вашия браузър чрез WebAssembly — вашите данни остават поверителни. За Swift опитайте нашия curl към Swift конвертор. За C вижте curl към C. По-долу са дадени готови за употреба Objective-C примери.
Как да копирате curl от вашия браузър
- 1
Отворете DevTools
Натиснете F12 или Ctrl+Shift+I, за да отворите инструментите за разработчици на вашия браузър.
- 2
Отидете в раздела Network
Кликнете върху раздела Network и извършете действието, което задейства HTTP заявката.
- 3
Копирайте като cURL
Кликнете с десния бутон върху заявката → Copy → Copy as cURL. След това я поставете по-горе.
Често задавани въпроси
Какво е NSURLSession?
NSURLSession е API на Foundation framework на Apple за HTTP мрежова работа в Objective-C (и Swift). Той управлява задачи за данни, изтегляния, качвания и фонови трансфери. Наличен е в iOS 7+, macOS 10.9+. Не са необходими зависимости от трети страни — това е стандартният начин за извършване на HTTP заявки в платформите на Apple. curl2code генерира NSURLSession код за Objective-C.
NSURLSession срещу AFNetworking — кое да използвам?
NSURLSession е вграденото решение — достатъчно за повечето нужди и без зависимости. AFNetworking беше популярен в миналото, но сега е в режим на поддръжка; неговият наследник е Alamofire (Swift). За нови проекти на Objective-C се препоръчва NSURLSession. За Swift вижте нашия конвертор от curl към Swift.
Как да се справя с автентикацията в Objective-C?
Задайте хедъра в NSMutableURLRequest: [request setValue:@"Bearer token" forHTTPHeaderField:@"Authorization"]. За Basic auth кодирайте креденциалите с NSData и base64EncodedStringWithOptions:. curl2code конвертира флаговете -u и Bearer в правилния Objective-C синтаксис.
Как да изпратя multipart form data в Objective-C?
Конструирайте тялото на multipart с NSMutableData: добавете boundary низове, данни за полета и файлови данни с правилни CRLF разделители. Задайте Content-Type с boundary. Това е ръчен процес, но дава пълен контрол. AFNetworking опростява това с AFHTTPRequestSerializer.
Как да се справя с HTTP грешки в Objective-C?
Колъбек функциите (completion handlers) на NSURLSession предоставят параметър NSError — проверете го за мрежови/транспортни грешки. Кастнете отговора към NSHTTPURLResponse и проверете statusCode. Използвайте делегатни методи на NSURLSession за по-детайлно управление на грешките, включително предизвикателства за автентикация и пренасочвания.
Как да работя с completion blocks в NSURLSession?
NSURLSession използва колъбеци, базирани на блокове: [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { ... }]. Винаги извиквайте [task resume], за да стартирате. За последователни заявки вложете блоковете или използвайте dispatch groups с dispatch_group_notify.
Как да задам таймаути в Objective-C?
Задайте в NSURLSessionConfiguration: config.timeoutIntervalForRequest = 30 и config.timeoutIntervalForResource = 300. Или за отделна заявка: request.timeoutInterval = 30. Грешките за таймаут пристигат като NSURLErrorTimedOut в параметъра за грешка. Те съответстват на опцията --max-time на curl.
Как да използвам прокси с NSURLSession?
Задайте connectionProxyDictionary в NSURLSessionConfiguration с ключове като (NSString *)kCFNetworkProxiesHTTPProxy и порт. NSURLSession спазва системните настройки за прокси по подразбиране в macOS и iOS. За PAC файлове конфигурирайте чрез системните предпочитания.
Как се изпраща POST заявка с JSON тяло в Objective-C?
Конвертирайте curl POST команда като curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL в Objective-C чрез curl2code. Генерираният код използва [request setHTTPBody:[NSJSONSerialization dataWithJSONObject:dict options:0 error:nil]]. curl2code автоматично разпознава -d/--data флагове с JSON съдържание и задава съответната Content-Type заглавна част в NSURLSession кода.
Как се добавя Bearer token оторизация в Objective-C?
Подайте curl -H "Authorization: Bearer YOUR_TOKEN" URL на curl2code и той ще генерира NSURLSession код със заглавна част за оторизация: [request setValue:@"Bearer TOKEN" forHTTPHeaderField:@"Authorization"]. curl2code разпознава Bearer токени както от -H "Authorization: Bearer ...", така и от --oauth2-bearer флагове. За Basic auth използвайте -u user:pass.
Как се задава Content-Type заглавна част в Objective-C?
curl2code конвертира curl -H "Content-Type: application/json" URL в NSURLSession код с правилната заглавна част: [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]. За -d данни, curl използва по подразбиране application/x-www-form-urlencoded; за -F качване на формуляри, използва multipart/form-data. curl2code свързва всеки от тях с правилния NSURLSession API.
Полезни връзки
Ръководства за curl
Кодове за грешки на curl
Справка за всеки изходен код на curl — причини, решения и съвети за отстраняване на грешки.
Изтегляне на файлове с curl
Запазвайте файлове с -o, -O, следвайте пренасочвания, възобновявайте изтегляния и още.
SSL, TLS и прокси
Конфигурирайте сертификати, версии на TLS, HTTP/SOCKS проксита и персонализиран DNS.