我正在使用对 socrata 数据门户的 RESTful 调用来获取数据。
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(WebConfigurationManager.AppSettings["APIEndPointHost"]);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
string userName = WebConfigurationManager.AppSettings["UserName"];
string password = WebConfigurationManager.AppSettings["PassWord"];
string credentials = userName + ":" + password;
var byteArray = Encoding.ASCII.GetBytes(credentials);
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
client.DefaultRequestHeaders.Add("X-App-Token", WebConfigurationManager.AppSettings["AppToken"]);
HttpResponseMessage response = new HttpResponseMessage();
string searchCondition = "resource/xxxx-xxxx.json?$where=column1='something'AND column2='something';
response = client.GetAsync(searchCondition).Result;
问题是有时“searchCondition”可能非常大,比如超过 5000 个字符,然后在执行它时出现以下错误。
发送请求时出错。
服务器违反了协议。Section=ResponseStatusLine
发生这种情况是因为我发送了一个很大的 requestUri 还是这与 socrata 限制搜索条件限制有关?