C#RestSharp RESTClient实现后100请求相同的API失败

问题描述 投票:0回答:1

我有当我使用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
c# for-loop request restsharp
1个回答
1
投票

从“执行”异常不抛出,但在“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}");
}
© www.soinside.com 2019 - 2024. All rights reserved.