curl-ді Objective-C тіліне түрлендіру
curl командаларын NSURLSession пайдаланып, Objective-C кодына түрлендіріңіз. 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 — бұл Objective-C (және Swift) тіліндегі HTTP желісіне арналған Apple-дің Foundation фреймворк API-і. Ол деректер тапсырмаларын, жүктеп алуларды, жүктеп салуларды және фондық тасымалдауларды басқарады. iOS 7+, macOS 10.9+ нұсқаларында қолжетімді. Үшінші тарап тәуелділігі қажет емес — бұл Apple платформаларында HTTP сұраныстарын жасаудың стандартты жолы. curl2code Objective-C үшін NSURLSession кодын жасайды.
NSURLSession vs 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 синтаксисіне түрлендіреді.
Objective-C-де multipart форма деректерін қалай жіберуге болады?
Multipart денесін NSMutableData арқылы құрастырыңыз: шекаралық жолдарды, өріс деректерін және файл деректерін тиісті CRLF бөлгіштерімен қосыңыз. Шекарасы бар Content-Type орнатыңыз. Бұл қолмен жасалады, бірақ толық бақылау береді. AFNetworking мұны AFHTTPRequestSerializer арқылы жеңілдетеді.
Objective-C-де HTTP қателерін қалай өңдеуге болады?
NSURLSession аяқталу өңдеушілері NSError параметрін береді — оны желілік/тасымалдау қателеріне тексеріңіз. Жауапты NSHTTPURLResponse түріне келтіріп, statusCode мәнін тексеріңіз. Аутентификация мәселелері мен қайта бағыттауларды қоса алғанда, қателерді егжей-тегжейлі өңдеу үшін NSURLSession делегат әдістерін қолданыңыз.
NSURLSession-де аяқталу блоктарымен қалай жұмыс істеуге болады?
NSURLSession блокқа негізделген кері байланыстарды қолданады: [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { ... }]. Бастау үшін әрқашан [task resume] шақырыңыз. Кезекті сұраныстар үшін блоктарды бірінің ішіне бірін салыңыз немесе dispatch_group_notify бар диспетчерлік топтарды қолданыңыз.
Objective-C-де күту уақытын қалай орнатуға болады?
NSURLSessionConfiguration-де орнатыңыз: config.timeoutIntervalForRequest = 30 және config.timeoutIntervalForResource = 300. Немесе әр сұранысқа: request.timeoutInterval = 30. Күту уақытының қателері қате параметрінде NSURLErrorTimedOut ретінде келеді. Бұлар curl-дің --max-time опциясына сәйкес келеді.
NSURLSession-мен проксиді қалай қолдануға болады?
connectionProxyDictionary-де NSURLSessionConfiguration-ді (NSString *)kCFNetworkProxiesHTTPProxy және порт сияқты кілттермен орнатыңыз. NSURLSession әдепкі бойынша macOS және iOS жүйелеріндегі жүйелік прокси параметрлерін ескереді. PAC файлдары үшін жүйелік теңшеулер арқылы баптаңыз.
Objective-C тілінде JSON денесі бар POST сұрауын қалай жіберуге болады?
curl2code құралын пайдаланып, curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL сияқты curl POST командасын Objective-C кодына түрлендіріңіз. Жасалған код [request setHTTPBody:[NSJSONSerialization dataWithJSONObject:dict options:0 error:nil]] функциясын пайдаланады. curl2code құралы JSON мазмұны бар -d/--data жалаушаларын автоматты түрде анықтайды және NSURLSession кодында тиісті Content-Type тақырыбын орнатады.
Objective-C тілінде Bearer токенімен авторизацияны қалай қосуға болады?
curl2code құралына curl -H "Authorization: Bearer YOUR_TOKEN" URL командасын беріңіз, ол келесі авторизация тақырыбы бар NSURLSession кодын жасайды: [request setValue:@"Bearer TOKEN" forHTTPHeaderField:@"Authorization"]. curl2code құралы Bearer токендерін -H "Authorization: Bearer ..." және --oauth2-bearer жалаушаларынан анықтайды. Basic auth үшін -u user:pass пайдаланыңыз.
Objective-C тілінде Content-Type тақырыбын қалай орнатуға болады?
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-ті конфигурациялау.