แปลง curl เป็น Swift

แปลงคำสั่ง curl เป็นโค้ด Swift โดยใช้ URLSession curl2code ทำงานในเบราว์เซอร์ของคุณทั้งหมดผ่าน WebAssembly — ข้อมูลของคุณจะยังคงเป็นส่วนตัว สำหรับ Kotlin (Android) ลองใช้ ตัวแปลง curl เป็น Kotlin ของเรา สำหรับ Objective-C ดูที่ curl เป็น Objective-C ด้านล่างนี้คือตัวอย่าง Swift ที่พร้อมใช้งาน

วิธีคัดลอก curl จากเบราว์เซอร์ของคุณ

  1. 1

    เปิด DevTools

    กด F12 หรือ Ctrl+Shift+I เพื่อเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของเบราว์เซอร์

  2. 2

    ไปที่แท็บ Network

    คลิกแท็บ Network และดำเนินการที่ทริกเกอร์คำขอ HTTP

  3. 3

    คัดลอกเป็น cURL

    คลิกขวาที่คำขอ → CopyCopy as cURL จากนั้นนำมาวางด้านบน

คำถามที่พบบ่อย (FAQ)

Swift URLSession คืออะไร?

URLSession เป็น HTTP client ในตัวของ Apple สำหรับ iOS, macOS, watchOS และ tvOS โดยรองรับทั้งงานข้อมูล (data tasks), การดาวน์โหลด, การอัปโหลด, WebSocket และการรับส่งข้อมูลเบื้องหลัง ไม่จำเป็นต้องติดตั้งแพ็กเกจเพิ่มเติมเพราะเป็นส่วนหนึ่งของ Foundation รองรับ HTTP/2, การทำ caching และการจัดการคุกกี้ curl2code จะสร้างโค้ด URLSession สำหรับการแปลงเป็น Swift ทั้งหมด

URLSession กับ Alamofire — ควรใช้อันไหนดี?

URLSession มีมาให้ในตัวและครอบคลุมความต้องการส่วนใหญ่ — ควรใช้เพื่อหลีกเลี่ยงการพึ่งพาไลบรารีภายนอก (third-party) ส่วน Alamofire จะเพิ่มความสะดวกสบาย เช่น การสร้าง request แบบ chainable, การลองใหม่โดยอัตโนมัติ (automatic retry), การตรวจสอบ response และการอัปโหลดแบบ multipart สำหรับโปรเจกต์ขนาดเล็ก URLSession ก็เพียงพอแล้ว สำหรับแนวทางแบบ built-in ที่คล้ายกัน ดูได้ที่ ตัวแปลง curl เป็น Kotlin หรือ curl เป็น Objective-C

จะจัดการการยืนยันตัวตน (Authentication) ใน Swift ได้อย่างไร?

ตั้งค่า header ใน URLRequest: request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") สำหรับ Basic auth ให้เข้ารหัสด้วย Data("\(user):\(pass)".utf8).base64EncodedString() โดย curl2code จะแปลงแฟล็ก -u และ Bearer header เป็นโค้ด Swift ให้โดยอัตโนมัติ

จะส่งข้อมูลแบบ multipart form data ใน Swift ได้อย่างไร?

สร้าง multipart body ด้วยตัวเอง: สร้าง boundary string, เพิ่มแต่ละฟิลด์/ไฟล์พร้อมตัวคั่น CRLF และตั้งค่า Content-Type: multipart/form-data; boundary=... หากต้องการความง่ายขึ้น ให้ใช้ upload(multipartFormData:) ของ Alamofire โดย curl2code จะจัดการการแปลงแฟล็ก -F สำหรับ URLSession ให้

จะจัดการข้อผิดพลาด HTTP ใน Swift ได้อย่างไร?

URLSession จะคืนค่า Error แบบ optional ใน completion handler — ให้ตรวจสอบว่าเป็น nil หรือไม่ จากนั้น cast response เป็น 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 มาเป็นโค้ดแบบ linear ใช้ Task { } เพื่อเรียกจากบริบทที่เป็น synchronous สำหรับ request ที่ทำงานพร้อมกัน ให้ใช้ async let หรือ TaskGroup ดูรูปแบบที่คล้ายกันได้ที่ curl เป็น Dart

จะตั้งค่า timeout ใน Swift URLSession ได้อย่างไร?

กำหนดค่าใน URLSessionConfiguration: config.timeoutIntervalForRequest = 30 (ต่อ request) และ config.timeoutIntervalForResource = 300 (รวมทั้งหมด) หรือตั้งค่า request.timeoutInterval = 30 ในแต่ละ request ซึ่งจะตรงกับตัวเลือก --max-time และ --connect-timeout ของ curl

จะใช้ proxy กับ URLSession ได้อย่างไร?

ตั้งค่า proxy ใน URLSessionConfiguration: config.connectionProxyDictionary = [kCFProxyHostNameKey: "proxy", kCFProxyPortNumberKey: 8080] สำหรับ SOCKS proxy ให้ใช้คีย์ kCFStreamPropertySOCKSProxy นอกจากนี้ URLSession ยังเคารพการตั้งค่า proxy ทั่วทั้งระบบที่กำหนดไว้ในเมนูการตั้งค่าของ macOS/iOS ด้วย

วิธีส่งคำขอ POST พร้อม JSON body ใน 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 tokens จากทั้งแฟล็ก -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 เป็นภาษาอื่น