curl-ის კონვერტაცია Swift-ში
გარდაქმენით curl ბრძანებები Swift კოდად URLSession-ის გამოყენებით. curl2code მუშაობს მთლიანად თქვენს ბრაუზერში WebAssembly-ის მეშვეობით — თქვენი მონაცემები რჩება კონფიდენციალური. Kotlin (Android)-ისთვის სცადეთ ჩვენი curl to Kotlin კონვერტორი. Objective-C-სთვის იხილეთ curl to Objective-C. ქვემოთ მოცემულია გამოსაყენებლად მზა Swift მაგალითები.
როგორ დავაკოპიროთ curl ბრაუზერიდან
- 1
გახსენით DevTools
დააჭირეთ F12-ს ან Ctrl+Shift+I ბრაუზერის დეველოპერის ხელსაწყოების გასახსნელად.
- 2
გადადით Network ტაბზე
დააწკაპუნეთ Network ტაბს და შეასრულეთ მოქმედება, რომელიც იწვევს HTTP მოთხოვნას.
- 3
დააკოპირეთ როგორც cURL
დააწკაპუნეთ მოთხოვნას მარჯვენა ღილაკით → Copy → Copy 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 შეცდომის კოდები
მოძებნეთ ნებისმიერი curl გასვლის კოდი — მიზეზები, გამოსწორებები და გამართვის რჩევები.
ფაილების ჩამოტვირთვა curl-ით
შეინახეთ ფაილები -o, -O პარამეტრებით, მიჰყევით გადამისამართებებს, განაახლეთ ჩამოტვირთვები და სხვა.
SSL, TLS და პროქსი
სერტიფიკატების, TLS ვერსიების, HTTP/SOCKS პროქსების და მორგებული DNS-ის კონფიგურაცია.