curl-ის კონვერტაცია Swift-ში

გარდაქმენით curl ბრძანებები Swift კოდად URLSession-ის გამოყენებით. curl2code მუშაობს მთლიანად თქვენს ბრაუზერში WebAssembly-ის მეშვეობით — თქვენი მონაცემები რჩება კონფიდენციალური. Kotlin (Android)-ისთვის სცადეთ ჩვენი curl to Kotlin კონვერტორი. Objective-C-სთვის იხილეთ curl to Objective-C. ქვემოთ მოცემულია გამოსაყენებლად მზა Swift მაგალითები.

როგორ დავაკოპიროთ curl ბრაუზერიდან

  1. 1

    გახსენით DevTools

    დააჭირეთ F12-ს ან Ctrl+Shift+I ბრაუზერის დეველოპერის ხელსაწყოების გასახსნელად.

  2. 2

    გადადით Network ტაბზე

    დააწკაპუნეთ Network ტაბს და შეასრულეთ მოქმედება, რომელიც იწვევს HTTP მოთხოვნას.

  3. 3

    დააკოპირეთ როგორც cURL

    დააწკაპუნეთ მოთხოვნას მარჯვენა ღილაკით → CopyCopy as cURL. შემდეგ ჩასვით ზემოთ.

ხშირად დასმული კითხვები

რა არის Swift URLSession?

URLSession არის Apple-ის ჩაშენებული HTTP კლიენტი iOS, macOS, watchOS და tvOS-ისთვის. ის მართავს მონაცემთა დავალებებს, ჩამოტვირთვებს, ატვირთვებს, WebSocket-ს და ფონურ გადაცემებს. პაკეტის ინსტალაცია არ არის საჭირო — ის Foundation-ის ნაწილია. მხარს უჭერს HTTP/2-ს, ქეშირებას და cookie-ების მართვას. curl2code აგენერირებს URLSession კოდს ყველა Swift კონვერტაციისთვის.

URLSession vs Alamofire — რომელი გამოვიყენო?

URLSession არის ჩაშენებული და ფარავს საჭიროებების უმეტესობას — გამოიყენეთ იგი მესამე მხარის დამოკიდებულებების თავიდან ასაცილებლად. Alamofire ამატებს მოხერხებულობას: ჯაჭვური მოთხოვნის ამგებლები (builders), ავტომატური განმეორება, პასუხის ვალიდაცია და multipart ატვირთვები. მცირე პროექტებისთვის URLSession საკმარისია. მსგავსი ჩაშენებული მიდგომებისთვის იხილეთ ჩვენი curl to Kotlin კონვერტერი ან curl to Objective-C.

როგორ ვმართოთ ავტორიზაცია Swift-ში?

დააყენეთ header-ი URLRequest-ზე: request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization"). Basic auth-ისთვის გამოიყენეთ Data("\(user):\(pass)".utf8).base64EncodedString(). curl2code ავტომატურად აკონვერტირებს -u და Bearer header-ის დროშებს Swift კოდში.

როგორ გავაგზავნოთ multipart form მონაცემები Swift-ში?

ააგეთ multipart body მანუალურად: შექმენით boundary სტრიქონი, დაამატეთ თითოეული ველი/ფაილი CRLF გამყოფებით და დააყენეთ Content-Type: multipart/form-data; boundary=.... უფრო მარტივი multipart-ისთვის გამოიყენეთ Alamofire-ის upload(multipartFormData:). curl2code მართავს -F დროშის კონვერტაციას URLSession-ისთვის.

როგორ ვმართოთ HTTP შეცდომები Swift-ში?

URLSession აბრუნებს არასავალდებულო Error-ს completion-ებში — შეამოწმეთ არის თუ არა ის nil. გადააკონვერტირეთ პასუხი HTTPURLResponse-ად და შეამოწმეთ statusCode. async/await-ის გამოყენებისას (iOS 15+), გამოიყენეთ try await URLSession.shared.data(for: request) do/catch ბლოკში შეცდომების სუფთად მართვისთვის.

როგორ გამოვიყენოთ async/await URLSession-თან?

Swift 5.5+ მხარს უჭერს async/await-ს ნატიურად: let (data, response) = try await URLSession.shared.data(for: request). ეს ანაცვლებს completion handler closure-ებს ხაზოვანი კოდით. გამოიყენეთ Task { } სინქრონული კონტექსტიდან გამოსაძახებლად. პარალელური მოთხოვნებისთვის გამოიყენეთ async let ან TaskGroup. მსგავსი პატერნებისთვის იხილეთ curl to Dart.

როგორ დავაყენოთ timeout-ები Swift URLSession-ში?

კონფიგურაცია ხდება URLSessionConfiguration-ზე: config.timeoutIntervalForRequest = 30 (თითო მოთხოვნაზე) და config.timeoutIntervalForResource = 300 (ჯამური). ან დააყენეთ request.timeoutInterval = 30 ინდივიდუალურ მოთხოვნებზე. ეს შეესაბამება curl-ის --max-time და --connect-timeout ოფციებს.

როგორ გამოვიყენოთ proxy URLSession-თან?

დააყენეთ proxy URLSessionConfiguration-ზე: config.connectionProxyDictionary = [kCFProxyHostNameKey: "proxy", kCFProxyPortNumberKey: 8080]. SOCKS proxy-ებისთვის გამოიყენეთ kCFStreamPropertySOCKSProxy გასაღებები. URLSession ასევე ითვალისწინებს სისტემურ proxy პარამეტრებს, რომლებიც კონფიგურირებულია macOS/iOS პარამეტრებში.

როგორ გავაგზავნოთ POST მოთხოვნა JSON ტანით Swift ენაზე?

გადაიყვანეთ curl POST ბრძანება, როგორიცაა curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL, Swift ენაზე curl2code გამოყენებით. გენერირებული კოდი იყენებს request.httpBody = try JSONEncoder().encode(data). curl2code ავტომატურად ამოიცნობს -d/--data ფლაგებს JSON კონტენტით და ადგენს შესაბამის Content-Type ჰედერს URLSession კოდში.

როგორ დავამატოთ Bearer token ავტორიზაცია Swift ენაზე?

მიაწოდეთ curl -H "Authorization: Bearer YOUR_TOKEN" URL ბრძანება curl2code ხელსაწყოს და ის დააგენერირებს URLSession კოდს ავტორიზაციის ჰედერით: request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization"). curl2code ამოიცნობს Bearer ტოკენებს როგორც -H "Authorization: Bearer ...", ისე --oauth2-bearer ფლაგებიდან. Basic auth-ისთვის გამოიყენეთ -u user:pass.

როგორ განვსაზღვროთ Content-Type ჰედერი Swift ენაზე?

curl2code გადაიყვანს curl -H "Content-Type: application/json" URL ბრძანებას URLSession კოდში შესაბამისი ჰედერით: request.setValue("application/json", forHTTPHeaderField: "Content-Type"). -d მონაცემებისთვის curl სტანდარტულად იყენებს application/x-www-form-urlencoded; -F ფორმის ატვირთვისთვის კი — multipart/form-data. curl2code თითოეულ მათგანს შესაბამის URLSession API-სთან აკავშირებს.

სასარგებლო ბმულები

curl სახელმძღვანელოები

curl-ის კონვერტაცია სხვა ენებზე