
ResponseDetective es un marco no intrusivo para interceptar cualquier solicitud saliente y respuestas entrantes entre su aplicación y su servidor para fines de depuración.
ResponseDetective está escrito en Swift 5.3 y admite iOS 9.0+ , MacOS 10.10+ y TVOS 9.0+ .
La incorporación de Responsedetective en su proyecto es muy simple: todo se reduce a solo dos pasos:
Para ResponderTetective a trabajar, debe agregarse como un intermediario entre su (NS)URLSession e Internet. Puede hacerlo registrando la clase URLProtocol proporcionada en (NS)URLSessionConfiguration.protocolClasses
// Objective-C
NSURLSessionConfiguration *configuration = [ NSURLSessionConfiguration defaultSessionConfiguration ];
[RDTResponseDetective enableInConfiguration: configuration];// Swift
let configuration = URLSessionConfiguration . default
ResponseDetective . enable ( inConfiguration : configuration ) Luego, debe usar esa configuración con su (NS)URLSession :
// Objective-C
NSURLSession *session = [[ NSURLSession alloc ] initWithConfiguration: configuration];// Swift
let session = URLSession ( configuration : configuration ) O, si está utilizando AfNetWorking / Alamofire como su marco de redes, la integración de Responsedetective se reduce a inicializar su AFURLSessionManager / Manager con la (NS)URLSessionConfiguration :
// Objective-C (AFNetworking)
AFURLSessionManager *manager = [[AFURLSessionManager alloc ] initWithSessionConfiguration: configuration];// Swift (Alamofire)
let manager = Alamofire . SessionManager ( configuration : configuration )¡Y eso es todo!
Ahora es el momento de realizar la solicitud real:
// 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à! ? Consulte la salida de su consola:
<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"
│ }
Si está utilizando Cartago, agregue la siguiente dependencia a su Cartfile :
github "netguru/ResponseDetective" ~> {version}
Si está utilizando Cocoapods, agregue la siguiente dependencia a su Podfile :
use_frameworks!
pod 'ResponseDetective', '~> {version}'
Si está utilizando Swift Package Manager, agregue este repositorio a los paquetes Swift en la configuración de su proyecto.
Para instalar las dependencias de prueba o para construir respuestas en sí misma, no ejecute carthage directamente. No puede manejar las arquitecturas de silicio de Apple introducidas en Xcode 12. En cambio, ejecutarlo a través del script carthage.sh :
$ ./carthage.sh bootstrapAlternativamente, puede ejecutar las pruebas localmente utilizando Swift Package Manager con el siguiente comando:
$ swift test Este proyecto fue realizado con ♡ por Netguru.
A partir de la versión 1.0.0, los lanzamientos de Responsedetective llevan el nombre de Sherlock Holmes Canon Stories, en orden cronológico. ¿Qué sucede si llegamos a 60 lanzamientos y no hay más historias? No lo sabemos, tal vez comencemos a nombrarlos después de los gatos o algo así.
Este proyecto tiene licencia bajo la licencia MIT . Vea la licencia.md para obtener más información.