当前位置: 首页 > 知识库问答 >
问题:

java.net.SocketTimeoutException:下载google电子表格时读取超时

岳嘉悦
2023-03-14

我有一段代码可以下载谷歌电子表格

File file = service.files().get(spreadsheetID).execute();
String downloadUrl = file.getExportLinks().get("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
HttpResponse resp = service.getRequestFactory().buildGetRequest(new GenericUrl(downloadUrl))
                .setConnectTimeout(0).execute();

连接超时默认为20秒。我试图将其设置为不同的值,但它不起作用。我不断得到

原因:java.net.SocketTimeoutException:java.net.SocketInputStream.socketRead0(本机方法)的读取超时~[na:1.7.060]在java.net.SocketInputStream.Read(SocketInputStream.java:152)~[na:1.7.060]在java.net.SocketInputStream.Read(SocketInputStream.java:122)~[na:1.7.060]在sun.security.ssl.InputRecord.readFully(InputRecord.java:442)的读取超时sun.security.ssl.InputRecord.read(InputRecord.java:480)~[na:1.7.0_60]在sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927)~[na:1.7.0_60]在sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:884)~[na:1.7.0_60]在sun.security.ssl.ssl.AppInputStream.AppInputStream.read(apputa:102.0)]在java.io.BufferedInputStream.fill(BufferedInputStream.java:235)~[na:1.7.060]在java.io.BufferedInputStream.read1(BufferedInputStream.java:275)~[na:1.7.060]在java.io.BufferedInputStream.read(BufferedInputStream.java:334)~[na:1.7.060]在sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687)~[na:1.7.060]在sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)~[na:1.7.0_60]在sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1323)~[na:1.7.0_60]在java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)~[na:1.7.0_60]在sun.net.www.protocol.https.httpsurlconnection.getResponseCode(HttpsURLConnectionImpl.java:338)~[na:1.7.0_60]在com.google.api.client.http.javanet.NetHttpResponse.(NetHttpResponse.java:36)~[google-http-client-1.19.0.jar:1.19.0]在com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:94)~[google-http-client-1.19.0.jar:1.19.0]在com.google.api.client.http.HttpRequest.execute(HttpRequest.java:965)~[google-http-client-1.19.0.jar:1.19.0]

共有1个答案

解晟睿
2023-03-14

您需要setReadTimeout以及可能是文档太大

 类似资料:
  • 问题内容: 我有一个RESTful服务器,该服务器从客户端接收http POST输入以投票表决服务器上的歌曲。我已经使用Apache HTTPClient作为客户端。 当我连续点击投票按钮时,经过几次投票(例如7-8),我得到了例外。当我搜索原因时,我发现这是因为客户端在超时期间没有得到服务器响应。但是问题是,当我使用其他应用程序(例如Chrome REST Console或JMeter)时,可以

  • 我使用带有php的Google Drive api来做各种奇妙的事情,但却无法下载HTML格式的电子表格。我可以使用getExportLinks()方法以各种格式下载它,但我只需要工作表中的文本,而不是docx或ODS中的格式化文件。 通过使用/feeds/download/spreadsheets/export?exportformat=html&format=html&key=id URL,g

  • 问题内容: 给定键和工作表ID(),您能否生成一个Python示例,说明如何下载Google Docs电子表格?我不能 我已经搜索过API的版本1,版本2和版本3。我没有运气,我无法弄清楚他们编译过的类似ATOM的供稿API,私有方法说我未经授权,而且我不想自己编写整个Google Login身份验证系统。由于挫败感,我要面对自己。 我有一些电子表格,我想这样访问它们: 请保存我的脸。 更新1:

  • 我很抱歉,如果这是一个明显的问题,我仍然是相当新的API。我正在使用python drive api库,并试图将google电子表格下载为CSV。 当我使用files.get时,它会吐出一个没有downloadUrl的文件,在导出链接字段中也没有“text/csv”键。 如果不可能,我可以找到解决方案,但我希望是这样,因为可以手动完成(file->download_as->csv) 我需要使用go

  • 问题内容: 我正在尝试从电子表格中读取日期列和时间列。我可以从工作表中撤消日期列,但不能撤消时间列。 例如,我的工作表将具有以下形式的行: 约会时间 2012年1月1日12:15:01 我有以下代码来获取日期列: 如您所见,我使用 HSSFDateUtil.isCellDateFormatted(cell) 检查单元格中是否有日期值。我想知道是否可以使用任何函数检查单元格是否具有时间值。 Exce

  • 我很难找到将多张工作表同步到主电子表格的方法。在我的测试中,我有一个大的电子表格,上面有5个城市的地址。我正在尝试为每个城市创建一个电子表格,并能够在任何一个表格中更改数据时同步数据。因此,我将管理总体数据,5张电子表格中的每一张都将分配给其他人。这样,他们就可以在不访问所有数据的情况下更新工作表。使用内置查询或导入功能的问题是,如果用户在“城市”电子表格上进行更改,它将破坏该表格,因为数据被引用