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 に送信するにはどうすればよいですか? また、安らかな呼び出し httpclient メソッドを使用して情報を取得しようとしましたが、次のようなエラーも表示されます。

リクエストの送信中にエラーが発生しました。サーバーがプロトコル違反を犯しました。Section=ResponseStatusLine

4

1 に答える 1

0

SodaClient残念ながら、 RESTful API リクエストを作成するために裏で使用する HTTP クエリ URL の長さは、HTTP/1.1仕様と HTTP ライブラリ自体の実際の制限の両方によって制限されています。詳細については、 StackOverflow の別の投稿をご覧ください:さまざまなブラウザーでの URL の最大長は何ですか?

検索条件に何を入れていますか?クエリを発行するためのより最適化された方法を考え出すお手伝いができるかもしれません。

于 2015-08-14T16:54:13.397 に答える