Google Sheets API spreadsheets/get请求中ETag始终为null的问题
解决Google Sheets API获取ETag为null的问题
当你设置IncludeGridData = false调用spreadsheets/get接口时,返回的Spreadsheet对象的ETag属性确实不会被填充——这是因为该模式下API返回的资源结构中不包含ETag字段。但你可以从HTTP响应头中提取ETag值,具体修改代码如下:
var sheetRequest = test.Spreadsheets.Get("1WC7CGN****************************nw"); sheetRequest.IncludeGridData = false; // 获取包含HTTP响应信息的完整结果 var fullResponse = await sheetRequest.ExecuteAsync(); var httpResponse = fullResponse.HttpResponseMessage; // 从响应头中提取ETag string etag = null; if (httpResponse.Headers.TryGetValues("ETag", out var etagValues)) { etag = etagValues.FirstOrDefault(); }
提取到的ETag可以直接用于后续的条件请求(比如在下次调用spreadsheets/get时设置If-None-Match请求头),以此检测表格数据是否发生变更。
内容的提问来源于stack exchange,提问作者Mark Bøg Lønquist
相关产品推荐
相关产品推荐

