Большие запросы (более 5000 символов) к сократам не поддерживаются
Я использую SodaClient для получения информации из частного набора данных в Сократе, используя следующий код.
var records = (dynamic)null;
string searchCondition = "column1='something'AND (column2='something' OR 'somethingelse') ";
var clientExport = new SodaClient("host name", "app token", "username","password");
var dataset = clientExport.GetResource<modelname>("resourceid");
var offset = 0;
var limit = 1000;
var soql = new SoqlQuery().Where(searchCondition).Offset(offset).Limit(limit);
records = dataset.Query<modelname>(soql).ToList();
return records;
Проблема в том, что иногда searchCondition может быть очень большим, например, более 5000 символов, тогда Sodaclient возвращает ошибку.
Как я могу отправлять большие запросы на Soql в Socrata? Я также пытался получить информацию, используя httpclient метод restful для вызовов, но он также отображал ошибки вроде.
Произошла ошибка при отправке запроса. Сервер совершил нарушение протокола. Раздел =ResponseStatusLine
1 ответ
К сожалению, длина URL-адреса HTTP-запроса, который SodaClient
использует под прикрытием, чтобы сделать свои запросы RESTful API, ограничен как HTTP/1.1
спецификация, а также практические ограничения в самих библиотеках HTTP. Вот еще одна статья Stackru с более подробной информацией: Какова максимальная длина URL в разных браузерах?
Что вы вводите в условия поиска? Может быть, я могу помочь вам придумать более оптимизированный способ оформления запроса.