Swift:
ส่งคำขอ HTTP

วิธีการ:

Swift ทำให้การส่งคำขอ HTTP เป็นเรื่องง่ายด้วยการใช้คลาส URLSession นี่คือตัวอย่างคำขอ GET ที่ง่าย:

import Foundation

// URL ของทรัพยากรที่คุณกำลังขอ
if let url = URL(string: "https://api.example.com/data") {

    // สร้าง URLSessionDataTask
    let task = URLSession.shared.dataTask(with: url) { data, response, error in
        
        // ตรวจสอบหากมีข้อผิดพลาด
        if let error = error {
            print("Error fetching data: \(error)")
            return
        }
        
        // ตรวจสอบหากเราได้รับคำตอบที่ถูกต้องและข้อมูล
        if let httpResponse = response as? HTTPURLResponse, 
           httpResponse.statusCode == 200,
           let data = data {
            
            // แปลงข้อมูลเป็นสตริงและพิมพ์
            let dataString = String(decoding: data, as: UTF8.self)
            print(dataString)
        }
    }
    // เริ่มงาน
    task.resume()
}

// ตัวอย่างผลลัพธ์จะเป็นเนื้อหาที่ดึงมาจาก API

ในการส่งคำขอ POST พร้อมกับ JSON:

import Foundation
import CoreFoundation

// จุดสิ้นสุด API ของคุณ
if let url = URL(string: "https://api.example.com/submit") {

    // เตรียมข้อมูลที่คุณต้องการส่ง
    let dictionary = ["key": "value"]
    guard let jsonData = try? JSONSerialization.data(withJSONObject: dictionary) else {
        print("Error: Cannot create JSON from dictionary")
        return
    }
    
    // เตรียม URLRequest
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = jsonData
    
    // สร้างและเริ่มงาน
    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        // จัดการคำตอบที่นี่
    }
    task.resume()
}

// ผลลัพธ์ขึ้นอยู่กับคำตอบจากเซิร์ฟเวอร์ ไม่มีมาตรฐานผลลัพธ์

ลงลึก:

คำขอ HTTP เป็นหัวใจหลักของการสื่อสารเว็บ พวกเขามีมาตั้งแต่ยุคแรกๆ ของเว็บ ซึ่งทำให้สามารถแลกเปลี่ยนข้อมูลได้มาตรฐาน

ทางเลือกสำหรับ URLSession ได้แก่ ไลบรารีของบุคคลที่สามเช่น Alamofire ที่ทำให้ไวยากรณ์ง่ายขึ้นและเพิ่มความสามารถ อย่างไรก็ตาม, URLSession ยังคงเป็นตัวเลือกหลักสำหรับการเรียกเครือข่ายแบบเนทีฟ และ Apple ยังคงทำให้มันอัปเดตด้วยคุณสมบัติการเชื่อมต่อเครือข่ายและมาตรฐานความปลอดภัยล่าสุด

รายละเอียดการทำงานที่ควรทราบคือ คำขอเครือข่ายเป็นเรื่องของการทำงานแบบไม่พร้อมของ Swift ซึ่งทำงานอยู่ในพื้นหลัง ทำให้แอปยังคงตอบสนองได้ หากมีคำตอบกลับมา จะมีการเรียกใช้ผู้จัดการการเสร็จสิ้นงาน สิ่งสำคัญคือต้องจัดการการจัดการเธรดอย่างเหมาะสม เฉพาะเมื่ออัปเดต UI ซึ่งต้องทำบนเธรดหลัก

ดูเพิ่มเติม: