iOS SDK - Interceptar la red
Interceptar la red
Section titled Interceptar la redORTracker exporta NetworkListener, que acepta tanto tareas como solicitudes. Así es como se hace:
import ORTracker
func fetchPokemonData(for name: String) {
let networkListener = NetworkListener()
let url = URL(string: "https://pokeapi.co/api/v2/pokemon/ditto")!
var request = URLRequest(url: url)
request.httpMethod = "GET" // This is the default, so it's optional in this case.
// Start the network listener with the request
networkListener.start(request: request)
// Create a data task
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error.localizedDescription)")
return
}
if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
print(json)
} catch {
print("Error deserializing JSON: \(error)")
}
}
networkListener.finish(response: response, data: data)
}
task.resume()
}
Sanitizar la solicitud
Section titled Sanitizar la solicitudSe exportan dos claves para recortar automáticamente los datos de la solicitud/respuesta: ignoredKeys para el cuerpo e ignoredHeaders para las cabeceras. Tanto la solicitud como la respuesta se sanitizarán, pero el cuerpo solo se verá afectado si es un JSON válido.
Simplemente asigna una lista de cadenas que quieras sanitizar:
let networkListener = NetworkListener()
networkListener.ignoredHeaders = ["mySecretToken"]
networkListener.ignoredKeys = ["password"]
También es posible modificar los datos de la respuesta antes de pasarlos al listener:
// ... request
var sanitizedData
if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
sanitizedData = customSanitizeFunction(data)
print(json)
} catch {
print("Error deserializing JSON: \(error)")
}
}
networkListener.finish(response: response, data: sanitizedData)
¿Tienes preguntas?
Section titled ¿Tienes preguntas?Si tienes alguna pregunta sobre este proceso, no dudes en contactarnos en nuestro Slack o consulta nuestro Foro.