пробелы, не принимаемые в ListQuery при запросе списка в электронной таблице Google - PullRequest
2 голосов
/ 29 февраля 2012

Я пытаюсь передать запрос в электронную таблицу. У меня есть значение сказать "Джон Сина". Как мне передать это в следующей строке. Я получаю сообщение об ошибке

ListQuery query = new ListQuery(listFeedUrl);
query.setSpreadsheetQuery("name = 'John cena' and age > 25");
ListFeed feed = service.query(query, ListFeed.class);

Это ошибка, которую я получаю:

com.google.gdata.util.InvalidEntryException: Bad Request
Parse error: Invalid token encountered

at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:594)
at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:563)
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:552)
at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:530)
at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:535)
at com.google.gdata.client.Service.getFeed(Service.java:1135)
at com.google.gdata.client.Service.getFeed(Service.java:1077)
at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:662)
at com.google.gdata.client.Service.query(Service.java:1237)
at com.google.gdata.client.Service.query(Service.java:1178)

Ответы [ 2 ]

3 голосов
/ 29 февраля 2012

Извините, я не знаю ответа полностью, но я хочу помочь.

Можете ли вы попробовать что-то вроде этого:

query.setSpreadsheetQuery("name = \"John cena\" and age > 25");

Вики-пост @ http://code.google.com/apis/spreadsheets/data/3.0/developers_guide.html#SendingStructuredRowQueries говорит о том, что вы должны включать в кавычки данные с пробелом.

0 голосов
/ 21 февраля 2014

У меня была такая же проблема, где у меня был столбец элемента со значениями, которые могут содержать пробелы. Добавляя двойные кавычки и избегая их в строке, я смог обойти проблему. Также вам может потребоваться удалить другие пробелы в запросе, кроме пробелов между "и", на всякий случай.

String queryString = ""; //should contain feedURL
ListQuery lsListQuery = new ListQuery(new URI(queryString).toURL());
lsListQuery.setSpreadsheetQuery("item=\"Item Name4\" ");

\\This will have the URI encoded
logger.debug(lsListQuery.getQueryUri()); 
\\This will give you the complete URL
logger.debug(new URI (queryString+lsListQuery.getQueryUri().toString()).toURL()); 
\\ This should give the feed from which the columns can be read
ListFeed listFeed = service.getFeed(new URI (queryString+lsListQuery.getQueryUri().toString()).toURL(), ListFeed.class); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...