0

我正在使用 SodaClient 使用以下代码从 Socrata 中的私有数据集中获取信息。

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?我还尝试使用 restful 调用 httpclient 方法获取信息,但它也显示错误。

发送请求时出错。服务器违反了协议。Section=ResponseStatusLine

4

1 回答 1

0

不幸的是,HTTP 查询 URL 的长度(SodaClient在后台用于发出 RESTful API 请求)受到HTTP/1.1规范和 HTTP 库本身的实际限制的限制。这是另一个 StackOverflow 帖子,其中包含更多详细信息:不同浏览器中 URL 的最大长度是多少?

您在搜索条件中添加了什么?也许我可以帮助您想出一种更优化的方式来发出您的查询。

于 2015-08-14T16:54:13.397 回答