尝试通过在 App Engine 环境中执行的 HEAD 请求检查 BigQuery 中是否存在数据集时,我们遇到了奇怪的错误。请看下面的代码。
bigquery.datasets().get(projectNumber, datasetId).executeUsingHead();
如果在本地开发服务器上运行该代码可以成功运行,但是,当部署在 Google 基础架构上时,我们会收到 IOException。
...
Caused by: java.io.IOException:
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.convertApplicationException(URLFetchServiceImpl.java:148)
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:43)
at com.google.api.client.extensions.appengine.http.UrlFetchRequest.execute(UrlFetchRequest.java:79)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:980)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:399)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUsingHead(AbstractGoogleClientRequest.java:382)
at com.google.api.services.bigquery.Bigquery$Datasets$Get.executeUsingHead(Bigquery.java:322)
...
任何想法,将不胜感激。