
ResponsEdetective เป็นเฟรมเวิร์กที่ไม่ล่วงล้ำสำหรับการสกัดกั้นคำขอขาออกและการตอบกลับที่เข้ามาระหว่างแอปของคุณและเซิร์ฟเวอร์ของคุณเพื่อจุดประสงค์ในการดีบัก
ResponsedEtective เขียนด้วย Swift 5.3 และรองรับ iOS 9.0+ , MacOS 10.10+ และ TVOS 9.0+
การรวมการตอบสนองในโครงการของคุณนั้นง่ายมาก - ทั้งหมดนี้ลงมาเพียงสองขั้นตอน:
สำหรับการตอบสนองต่อการทำงานจะต้องเพิ่มเป็นคนกลางระหว่าง (NS)URLSession ของคุณและอินเทอร์เน็ต คุณสามารถทำได้โดยการลงทะเบียนคลาส URLProtocol ที่ให้ไว้ใน (NS)URLSessionConfiguration.protocolClasses ชั่นเซสชันของคุณ
// Objective-C
NSURLSessionConfiguration *configuration = [ NSURLSessionConfiguration defaultSessionConfiguration ];
[RDTResponseDetective enableInConfiguration: configuration];// Swift
let configuration = URLSessionConfiguration . default
ResponseDetective . enable ( inConfiguration : configuration ) จากนั้นคุณควรใช้การกำหนดค่านั้นด้วย (NS)URLSession ของคุณ:
// Objective-C
NSURLSession *session = [[ NSURLSession alloc ] initWithConfiguration: configuration];// Swift
let session = URLSession ( configuration : configuration ) หรือหากคุณใช้ Afnetworking / Alamofire เป็นเฟรมเวิร์กเครือข่ายของคุณการบูรณาการการตอบสนองการทำงานจะลงมาเพื่อเริ่มต้นการเริ่มต้น AFURLSessionManager / Manager ของคุณด้วย (NS)URLSessionConfiguration :
// Objective-C (AFNetworking)
AFURLSessionManager *manager = [[AFURLSessionManager alloc ] initWithSessionConfiguration: configuration];// Swift (Alamofire)
let manager = Alamofire . SessionManager ( configuration : configuration )และนั่นคือทั้งหมด!
ตอนนี้ถึงเวลาดำเนินการตามคำขอจริง:
// Objective-C
NSURLRequest *request = [[ NSURLRequest alloc ] initWithURL: [ NSURL URLWithString: @" http://httpbin.org/get " ]];
[[session dataTaskWithRequest: request] resume ];// Swift
let request = URLRequest ( URL : URL ( string : " http://httpbin.org/get " ) ! )
session . dataTask ( with : request ) . resume ( )voilà! - ตรวจสอบเอาต์พุตคอนโซลของคุณ:
<0x000000000badf00d> [REQUEST] GET https://httpbin.org/get
├─ Headers
├─ Body
│ <none>
<0x000000000badf00d> [RESPONSE] 200 (NO ERROR) https://httpbin.org/get
├─ Headers
│ Server: nginx
│ Date: Thu, 01 Jan 1970 00:00:00 GMT
│ Content-Type: application/json
├─ Body
│ {
│ "args" : {
│ },
│ "headers" : {
│ "User-Agent" : "ResponseDetective/1 CFNetwork/758.3.15 Darwin/15.4.0",
│ "Accept-Encoding" : "gzip, deflate",
│ "Host" : "httpbin.org",
│ "Accept-Language" : "en-us",
│ "Accept" : "*/*"
│ },
│ "url" : "https://httpbin.org/get"
│ }
หากคุณใช้ Carthage ให้เพิ่มการพึ่งพาต่อไปนี้ใน Cartfile ของคุณ:
github "netguru/ResponseDetective" ~> {version}
หากคุณใช้ cocoapods ให้เพิ่มการพึ่งพาต่อไปนี้ใน Podfile ของคุณ:
use_frameworks!
pod 'ResponseDetective', '~> {version}'
หากคุณใช้ Swift Package Manager ให้เพิ่มที่เก็บนี้ลงในแพ็คเกจ Swift ในการตั้งค่าโครงการของคุณ
ในการติดตั้งการพึ่งพาการทดสอบหรือเพื่อสร้างการตอบสนองต่อตัวเองอย่าเรียกใช้ carthage โดยตรง ไม่สามารถจัดการกับสถาปัตยกรรมของ Apple Silicon ที่แนะนำใน Xcode 12 แทนเรียกใช้ผ่านสคริปต์ carthage.sh :
$ ./carthage.sh bootstrapหรือคุณสามารถเรียกใช้การทดสอบในเครื่องโดยใช้ Swift Package Manager ด้วยคำสั่งต่อไปนี้:
$ swift test โครงการนี้ทำด้วย♡โดย Netguru
เริ่มต้นจากเวอร์ชัน 1.0.0 การเปิดตัวของ Respondetective ได้รับการตั้งชื่อตามเรื่องราวของ Sherlock Holmes Canon ตามลำดับเวลา จะเกิดอะไรขึ้นถ้าเราไปถึง 60 รุ่นและไม่มีเรื่องราวอีกต่อไป? เราไม่รู้บางทีเราจะเริ่มตั้งชื่อพวกเขาหลังจากแมวหรืออะไรบางอย่าง
โครงการนี้ได้รับใบอนุญาตภายใต้ ใบอนุญาต MIT ดู License.md สำหรับข้อมูลเพิ่มเติม