המרת 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. לאחר מכן הדבק אותה למעלה.
שאלות נפוצות (FAQ)
מהו 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, קודדו אישורים עם NSData ו-base64EncodedStringWithOptions:. curl2code ממיר דגלי -u ו-Bearer לתחביר ה-Objective-C הנכון.
איך שולחים נתוני multipart form ב-Objective-C?
בנו את גוף ה-multipart עם NSMutableData: הוסיפו מחרוזות boundary, נתוני שדות ונתוני קבצים עם מפרידי CRLF מתאימים. הגדירו Content-Type עם ה-boundary. זה ידני אך נותן שליטה מלאה. AFNetworking מפשט זאת עם AFHTTPRequestSerializer.
איך מטפלים בשגיאות HTTP ב-Objective-C?
ה-completion handlers של NSURLSession מספקים פרמטר NSError — בדקו אותו לשגיאות רשת/תעבורה. המירו את התגובה ל-NSHTTPURLResponse ובדקו את ה-statusCode. השתמשו במתודות delegate של NSURLSession לטיפול מפורט יותר בשגיאות כולל אתגרי אימות והפניות מחדש.
איך עובדים עם completion blocks ב-NSURLSession?
NSURLSession משתמש ב-callbacks מבוססי בלוקים: [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.
איך משתמשים ב-proxy עם 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 tokens גם מדגלי -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 ממפה כל אחד מהם ל-API הנכון של NSURLSession.