iOS SDK - اعتراض الشبكة
اعتراض الشبكة
Section titled اعتراض الشبكةيُصدّر ORTracker الكائن NetworkListener الذي يقبل المهام والطلبات معًا، وإليك كيفية القيام بذلك:
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()
}
تنقية الطلب
Section titled تنقية الطلبيُصدَّر مفتاحان لتقليم بيانات الطلب/الاستجابة تلقائيًا: ignoredKeys للجسم وignoredHeaders للترويسات. سيتم تنقية كلٍّ من الطلب والاستجابة، لكن الجسم لن يتأثر إلا إذا كان JSON صالحًا.
ما عليك سوى تعيين قائمة من السلاسل النصية التي ترغب في تنقيتها:
let networkListener = NetworkListener()
networkListener.ignoredHeaders = ["mySecretToken"]
networkListener.ignoredKeys = ["password"]
من الممكن أيضًا تعديل بيانات الاستجابة قبل تمريرها إلى المستمع:
// ... 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)
هل لديك أسئلة؟
Section titled هل لديك أسئلة؟إذا كانت لديك أي أسئلة حول هذه العملية، فلا تتردد في التواصل معنا عبر Slack الخاص بنا أو الاطلاع على المنتدى الخاص بنا.