Подсчет запросов JSON от Api

Я использую api, который позволяет мне 600 запросов в час. Мое приложение не завершено, поэтому я иногда тестирую запросы JSON. Думаю, около 10 запросов в час.

Но провайдер говорит, что я сделал 600. Как такое возможно? Есть ли способ посчитать запросы с моей стороны?

Я делаю запросы с помощью своего виджета (Widgetkit). Возможно ли, что он запрашивает загрузку в реальном времени каждую секунду?

Мой фактический запрос JSON:

class NetworkManager: ObservableObject {
    
    @Published var posts = [Post]()
    @Published var clubName = "..."
    @Published var teamId = "30"
    @Published var gastMannschaft = "..."
    
    let testStr = UserDefaults(suiteName: "gro")!.string(forKey: "test")
    

    
    init() {
            fetchData() // fetch data must be called at least once
        }

    func fetchData() {
        let teamId = testStr ?? "47"
        
        if let url = URL(string: "..." + teamId) {
            let session = URLSession(configuration: .default)
            let task = session.dataTask(with: url) { (gettingInfo, response, error) in
                if error == nil {
                    let decoder = JSONDecoder()
                    if let safeData = gettingInfo {
                        do {
                            let results = try decoder.decode(Results.self, from: safeData)
                            DispatchQueue.main.async {
                                
                                self.clubName = results.data[0].away_name
                                
                                
                                if #available(iOS 14.0, *) {
                                    WidgetCenter.shared.reloadAllTimelines()
                                } else {
                                    // Fallback on earlier versions
                                }
                                
                            }
                        } catch {
                            print(error)
                        }
                    }
                }
            }
            task.resume()
        }
    }
}

person submariner    schedule 22.09.2020    source источник
comment
Проверь сколько времени называется fetchData()? Сколько раз называется NetworkManager()? Не могли бы вы распечатать его, чтобы убедиться? Как с print("????"), а потом посмотреть ваши (кратные) логи и посчитать? Или сохраните его в значение UserDefaults (если вы все время тестируете на одном устройстве / одновременно)   -  person Larme    schedule 22.09.2020
comment
Хорошо, потому что если новый виджет. Проверил сейчас с удалением виджета. Я создам новую тему с этим вопросом.   -  person submariner    schedule 22.09.2020


Ответы (1)


Возможно, вы делаете несколько избыточных запросов, о которых вы могли не знать.

Чтобы отслеживать свои запросы, вы можете регистрировать их, используя, например, Charles Proxy. Это откроет подробную информацию о запросах, которые вы сделали за то время, когда вы выполняете их через прокси.

person Patryk Budzinski    schedule 22.09.2020
comment
Спасибо, это был ответ. Он сделал 50 запросов только с одним запросом JSON. Но как я могу решить эту проблему? Не знаю, где я сделал что-то не так. Я собираюсь обновить первый пост своим JSON-запросом. - person submariner; 22.09.2020
comment
Это было из-за виджета. Проверил сейчас. - person submariner; 22.09.2020
comment
Просмотрите свою конфигурацию TimelineProvider виджета и настройте ее в соответствии с вашими потребностями. - person Patryk Budzinski; 22.09.2020
comment
Что именно мне нужно изменить? Если вы добавляете виджет, есть образец кода, который меня смущает. У вас есть ссылка? - person submariner; 22.09.2020