Большие запросы (более 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 в разных браузерах?

Что вы вводите в условия поиска? Может быть, я могу помочь вам придумать более оптимизированный способ оформления запроса.

Другие вопросы по тегам