我有当我使用RestSharp RESTClient实现一个问题。我试图做一个循环内多次请求,但它始终是第99个请求后失败。
for (int i = 0; i < 120; i++)
{
Console.WriteLine($"Count : {i}");
try
{
var request = new RestRequest("/endpoint/0016GMLCLT00000007456", Method.GET)
{
RequestFormat = DataFormat.Json,
JsonSerializer = new JsonDeserializer()
};
request.AddParameter("accepteEmail", "true");
var response = RestClient.Execute<AuthenticateResponse>(request);
Console.WriteLine($"API TEST : {response.Content}");
}
catch
{
Console.WriteLine($"API TEST : FAIL");
}
}
我可以看到我的这个终端上,当我执行代码
Count : 97
API TEST : {"response":"YES","description":"you did it"}
Count : 98
API TEST : {"response":"YES","description":"you did it"}
Count : 99
API TEST :
Count : 100
API TEST :
Count : 101
API TEST :
为什么它的工作99次后,我什么都没有?
编辑:我也做了同样的代码在JAVA中,也试图在邮差请求的120次迭代和它的工作。而且这还与HTTP URL但不HTTPS后的100倍。我补充一点的代码,看问题
Console.WriteLine($"API TEST : {response.ErrorMessage}");
它告诉我
The underlying connection was closed: An unexpected error occurred on a send
从“执行”异常不抛出,但在“ErrorException”响应特性可用。你需要检查这个属性是不执行请求后空。对于你的情况,你需要添加像这样:
var response = RestClient.Execute<AuthenticateResponse>(request);
if (response.ErrorException == null)
{
Console.WriteLine($"API TEST : {response.Content}");
}
else
{
Console.WriteLine($"API TEST : FAIL {response.ErrorException.Message}");
}