我正在开发一个与Web服务对话的Xamarin跨平台项目。我的服务调用的一般形式遵循以下模式:
var clientQuery = new MyClientsQuery(param1, param2);
var json = JsonConvert.SerializeObject(clientQuery);
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpClient _httpClient = new HttpClient();
response = await _httpClient.PostAsync(ServiceURL, content);
if (response.IsSuccessStatusCode)
{
json = await response.Content.ReadAsStringAsync();
}
这通常可以正常工作,但在执行应用程序期间进行几次调用后,PostAsync会生成异常:
System.ArgumentOutOfRangeException:索引超出范围。必须是非负数且小于集合的大小。
参数名称:index
我怀疑我遇到了某种连接限制,但我找不到System.Net.Http中的任何文档,这些文档表明我何时应该处理对象或任何其他线索。
为什么会这样?
答案 0 :(得分:1)
我认为您的连接限制是正确的。我解决这个问题的方法是结束我以前的客户端连接。一旦我这样做了,我就不再收到这个错误了。
对于其他收到此错误的人,请查看您是否创建了许多其他 http_client,如果可以,请结束连接。