【发布时间】:2019-02-08 11:04:35
【问题描述】:
我在使用 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 中完成了相同的代码,并在 POSTMAN 中尝试了 120 次请求迭代,它正在工作。它也适用于 HTTP URL,但 100 次后不适用于 HTTPS。我将其添加到代码中以查看问题
Console.WriteLine($"API TEST : {response.ErrorMessage}");
它告诉我
The underlying connection was closed: An unexpected error occurred on a send
【问题讨论】:
-
显然它不会抛出异常。响应不返回任何内容。必须与 API 相关。
-
@SeckinCelik,我也这么认为,但我在 Java 中尝试过同样的方法,它正在工作。问题不在于 API。
-
你是在本地执行这个吗?还是在某处的服务器上运行?
-
@AlexKeySmith 它在某处的服务器上运行,而不是在本地运行
-
作为更一般的评论,在进行大规模 http 连接时要寻找的各种东西是docs.microsoft.com/en-us/dotnet/api/…
标签: c# for-loop request restsharp