gpt4 book ai didi

android - 在 Android 中使用结构查询 (sq) 从 Google Spreadsheet API 检索数据时出错

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:19 25 4
gpt4 key购买 nike

我在 Android 中使用 Google Spreadsheet API。我已成功完成集成并能够检索行。但在搜索功能方面面临一个小问题。我对电子表格进行了 3-4 种不同的搜索。问题是在我的电子表格中的某些列中,单词之间有空格。

例如,Hello World 是第 5 行中的一个值,该行的标题名称假设为 test。

因此,当我搜索 Hello World 时,它会抛出 InValidEntryException : Bad Request.

我也尝试使用 URLEncoder.encode(String url) 并将空格替换为 %20。 但这些都不适合我。我知道由于空间原因我收到了错误,但不知道如何解决。尝试了这两件事,但仍在为错误而苦苦挣扎。

如果有人有任何想法,请提供帮助。以下是错误日志。

错误日志:-

10-09 14:26:29.048: I/System.out(1009): URL ==> https://spreadsheets.google.com/feeds/list/tl5vghRJs8_wuVQWnk5TnhA/od6/private/full?sq=streetname=bal%20bay
10-09 14:26:30.327: D/dalvikvm(1009): GC_CONCURRENT freed 439K, 46% free 3492K/6407K, external 920K/1417K, paused 18ms+14ms
10-09 14:26:31.847: I/System.out(1009): Service
10-09 14:26:31.877: W/System.err(1009): com.google.gdata.util.InvalidEntryException: Bad Request
10-09 14:26:31.887: W/System.err(1009): Parse error: null
10-09 14:26:31.967: W/System.err(1009): at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:602)
10-09 14:26:32.217: W/System.err(1009): at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:564)
10-09 14:26:32.228: W/System.err(1009): at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:560)
10-09 14:26:32.228: W/System.err(1009): at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:538)
10-09 14:26:32.228: W/System.err(1009): at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:536)
10-09 14:26:32.228: W/System.err(1009): at com.google.gdata.client.Service.getFeed(Service.java:1135)
10-09 14:26:32.228: W/System.err(1009): at com.google.gdata.client.Service.getFeed(Service.java:998)
10-09 14:26:32.237: W/System.err(1009): at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:645)
10-09 14:26:32.259: W/System.err(1009): at com.google.gdata.client.Service.getFeed(Service.java:1017)
10-09 14:26:32.259: W/System.err(1009): at com.test.voter.SearchActivity$SearchTask.doInBackground(SearchActivity.java:144)
10-09 14:26:32.259: W/System.err(1009): at com.test.voter.SearchActivity$SearchTask.doInBackground(SearchActivity.java:1)
10-09 14:26:32.259: W/System.err(1009): at android.os.AsyncTask$2.call(AsyncTask.java:185)
10-09 14:26:32.278: W/System.err(1009): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
10-09 14:26:32.287: W/System.err(1009): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
10-09 14:26:32.287: W/System.err(1009): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
10-09 14:26:32.312: W/System.err(1009): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
10-09 14:26:32.312: W/System.err(1009): at java.lang.Thread.run(Thread.java:1019)

编辑

1)URL listFeedUrl = new  URI(worksheet.getListFeedUrl().toString() + "?sq=" + URLEncoder.encode("streetname=\"164Th\"")).toURL(); 

2)URL listFeedUrl = new URI(worksheet.getListFeedUrl().toString() + "?sq=" + URLEncoder.encode("streetnumber=\"1923\"%20and%20streetname=\"164Th\"")).toURL();

(1) 工作得很好,但是当使用多个参数时 (2) 它不起作用,再次给出相同的 InvalidEntryException。

最佳答案

或者您可以在问题列表中搜索 issue 2308并注意评论 3:

if you just wrap the name in quotes, it works fine. You can even use spaces in your column names here.

https://spreadsheets.google.com/feeds/${KEY}/records/0?sq="5B"+%3D+3 https://spreadsheets.google.com/feeds/${KEY}/records/0?sq="the+cat"+%3D+3

...并希望记录提要中未记录的内容实际上已在列表提要中实现,尽管稍后会过渡到“WontFix”状态。

关于android - 在 Android 中使用结构查询 (sq) 从 Google Spreadsheet API 检索数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12796368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com