Я столкнулся с проблемой «401 Unauthorized», когда попробовал фрагмент bigquery от Майкла из этот пост на моем компьютере. . Как предложил ryguyrg, я синхронизировал время своего компьютера (нажав «обновить сейчас»), и код заработал. Но проблема в том, что через некоторое время, может быть, несколько минут, когда я перезапускал код, он снова терпел неудачу с ошибкой 401. Итак Мне приходится вручную синхронизировать время моего компьютера почти каждый раз, когда я хочу выполнить большой запрос.
Я почти уверен, что мой компьютер работает хорошо, и время не должно отличаться более чем на пару миллисекунд по отношению к серверу. Так что именно вызывает проблему? Должен ли я попробовать что-то, чтобы синхронизировать время из кода до запроса или есть лучший способ?
Ниже приведено сообщение об ошибке 401 для справки:
Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:159)
at com.google.api.client.googleapis.json.GoogleJsonResponseException.execute(GoogleJsonResponseException.java:187)
at com.google.api.client.googleapis.services.GoogleClient.executeUnparsed(GoogleClient.java:115)
at com.google.api.client.http.json.JsonHttpRequest.executeUnparsed(JsonHttpRequest.java:112)
at com.google.api.services.bigquery.Bigquery$Jobs$Insert.executeUnparsed(Bigquery.java:1418)
at com.google.api.services.bigquery.Bigquery$Jobs$Insert.execute(Bigquery.java:1442)
at BigQueryJavaServiceAccount.main(BigQueryJavaServiceAccount.java:83)