
ResponedETective ist ein nicht störendes Framework, um ausgehende Anforderungen und eingehende Antworten zwischen Ihrer App und Ihrem Server für Debugging-Zwecke abzufangen.
ResponedEtective ist in Swift 5.3 geschrieben und unterstützt iOS 9.0+ , macOS 10.10+ und tvOS 9.0+ .
Das Einbeziehen von ResponedETective in Ihr Projekt ist sehr einfach - alles kommt nur auf zwei Schritte an:
Damit RespotedEtective arbeitet, muss es als Mittelsmann zwischen Ihrer (NS)URLSession und dem Internet hinzugefügt werden. Sie können dies tun, indem Sie die bereitgestellte URLProtocol -Klasse in (NS)URLSessionConfiguration.protocolClasses der Sitzung registrieren.
// Objective-C
NSURLSessionConfiguration *configuration = [ NSURLSessionConfiguration defaultSessionConfiguration ];
[RDTResponseDetective enableInConfiguration: configuration];// Swift
let configuration = URLSessionConfiguration . default
ResponseDetective . enable ( inConfiguration : configuration ) Anschließend sollten Sie diese Konfiguration mit Ihrer (NS)URLSession verwenden:
// Objective-C
NSURLSession *session = [[ NSURLSession alloc ] initWithConfiguration: configuration];// Swift
let session = URLSession ( configuration : configuration ) Oder wenn Sie AFNetworking / Alamofire als Ihr Netzwerk -Framework verwenden, ist die Integration von ResponedETective darauf abzielt, Ihren AFURLSessionManager / Manager mit den oben genannten (NS)URLSessionConfiguration zu initialisieren:
// Objective-C (AFNetworking)
AFURLSessionManager *manager = [[AFURLSessionManager alloc ] initWithSessionConfiguration: configuration];// Swift (Alamofire)
let manager = Alamofire . SessionManager ( configuration : configuration )Und das ist alles!
Jetzt ist es Zeit, die tatsächliche Anfrage auszuführen:
// 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à! ? Schauen Sie sich Ihre Konsolenausgabe an:
<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"
│ }
Wenn Sie Carthago verwenden, fügen Sie Ihrem Cartfile die folgende Abhängigkeit hinzu:
github "netguru/ResponseDetective" ~> {version}
Wenn Sie Cocoapods verwenden, fügen Sie Ihrem Podfile die folgende Abhängigkeit hinzu:
use_frameworks!
pod 'ResponseDetective', '~> {version}'
Wenn Sie Swift Paket Manager verwenden, fügen Sie dieses Repository in die Swift -Pakete in Ihren Projekteinstellungen hinzu.
Um die Testabhängigkeiten zu installieren oder antwortendem selbst zu erstellen, laufen Sie carthage nicht direkt. Es kann nicht mit den in Xcode 12 eingeführten Apple Silicon -Architekturen umgehen. Stattdessen führen Sie es durch das Skript carthage.sh .
$ ./carthage.sh bootstrapAlternativ können Sie die Tests lokal mit dem Swift -Paket -Manager mit dem folgenden Befehl ausführen:
$ swift test Dieses Projekt wurde mit ♡ von Netguru gemacht.
Ab Version 1.0.0 werden die Veröffentlichungen von ResponedETective nach Sherlock Holmes Canon Stories in chronologischer Reihenfolge benannt. Was passiert, wenn wir 60 Veröffentlichungen erreichen und es keine Geschichten mehr gibt? Wir wissen nicht, vielleicht werden wir sie nach Katzen oder so benennen.
Dieses Projekt ist unter MIT -Lizenz lizenziert. Weitere Informationen finden Sie unter Lizenz.MD.