
ResponseDetektif adalah kerangka kerja yang tidak mengganggu untuk mencegat permintaan keluar dan tanggapan yang masuk antara aplikasi Anda dan server Anda untuk tujuan debugging.
ResponseDetektif ditulis dalam Swift 5.3 dan mendukung iOS 9.0+ , MacOS 10.10+ dan TVOS 9.0+ .
Menggabungkan responedetektif dalam proyek Anda sangat sederhana - semuanya turun menjadi hanya dua langkah:
Agar responsedetektif berfungsi, itu perlu ditambahkan sebagai perantara di antara (NS)URLSession Anda dan internet. Anda dapat melakukan ini dengan mendaftarkan kelas URLProtocol yang disediakan di (NS)URLSessionConfiguration.protocolClasses Anda.
// Objective-C
NSURLSessionConfiguration *configuration = [ NSURLSessionConfiguration defaultSessionConfiguration ];
[RDTResponseDetective enableInConfiguration: configuration];// Swift
let configuration = URLSessionConfiguration . default
ResponseDetective . enable ( inConfiguration : configuration ) Kemudian, Anda harus menggunakan konfigurasi itu dengan (NS)URLSession Anda:
// Objective-C
NSURLSession *session = [[ NSURLSession alloc ] initWithConfiguration: configuration];// Swift
let session = URLSession ( configuration : configuration ) Atau, jika Anda menggunakan AFNETWORKING / ALAMOFIRE sebagai kerangka kerja jaringan Anda, mengintegrasikan ResponseDetective datang untuk hanya menginisialisasi AFURLSessionManager / Manager Anda dengan (NS)URLSessionConfiguration :
// Objective-C (AFNetworking)
AFURLSessionManager *manager = [[AFURLSessionManager alloc ] initWithSessionConfiguration: configuration];// Swift (Alamofire)
let manager = Alamofire . SessionManager ( configuration : configuration )Dan itu saja!
Sekarang saatnya melakukan permintaan yang sebenarnya:
// 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 ( )Voila! ? Lihat output konsol Anda:
<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"
│ }
Jika Anda menggunakan Carthage, tambahkan ketergantungan berikut ke Cartfile Anda:
github "netguru/ResponseDetective" ~> {version}
Jika Anda menggunakan cocoapod, tambahkan ketergantungan berikut ke Podfile Anda:
use_frameworks!
pod 'ResponseDetective', '~> {version}'
Jika Anda menggunakan Swift Package Manager, tambahkan repositori ini ke paket Swift di pengaturan proyek Anda.
Untuk menginstal dependensi tes atau membangun responedetektif itu sendiri, jangan menjalankan carthage secara langsung. Itu tidak dapat menangani arsitektur silikon apel yang diperkenalkan di Xcode 12. Sebaliknya, jalankan melalui skrip carthage.sh :
$ ./carthage.sh bootstrapAtau, Anda dapat menjalankan tes secara lokal menggunakan Swift Package Manager dengan perintah berikut:
$ swift test Proyek ini dibuat dengan ♡ oleh Netguru.
Mulai dari versi 1.0.0, rilis ResponseDetektif dinamai setelah cerita Canon Sherlock Holmes, dalam urutan kronologis. Apa yang terjadi jika kita mencapai 60 rilis dan tidak ada lagi cerita? Kami tidak tahu, mungkin kami akan mulai menamainya setelah kucing atau semacamnya.
Proyek ini dilisensikan di bawah lisensi MIT . Lihat lisensi.md untuk info lebih lanjut.