curl-ді Objective-C тіліне түрлендіру

curl командаларын NSURLSession пайдаланып, Objective-C кодына түрлендіріңіз. curl2code толығымен браузеріңізде WebAssembly арқылы орындалады — деректеріңіз құпия сақталады. Swift үшін біздің curl-ді Swift-ке түрлендіргішімізді қолданып көріңіз. C үшін curl-ді C-ға қараңыз. Төменде пайдалануға дайын Objective-C мысалдары берілген.

Браузерден curl-ді қалай көшіруге болады

  1. 1

    DevTools-ты ашу

    Браузердің әзірлеуші құралдарын ашу үшін F12 пернесін немесе Ctrl+Shift+I басыңыз.

  2. 2

    Network қойындысына өтіңіз

    Network қойындысын басып, HTTP сұрауын тудыратын әрекетті орындаңыз.

  3. 3

    cURL ретінде көшіру

    Сұрауды оң жақ түймемен басыңыз → CopyCopy 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-ді басқа тілдерге түрлендіру