【问题标题】:Submitting concurrent HTTP requests with RestSharp使用 RestSharp 提交并发 HTTP 请求
【发布时间】:2021-10-04 21:17:30
【问题描述】:

我有一个作为自托管 OWIN 应用程序运行的 RESTful API,以及一个对服务器进行 API 调用的客户端。两者都是使用 .Net/WebAPI/RestSharp 完成的。在正常情况下,客户端发送 HTTP 请求并接收 HTTP 响应,一切都按预期工作。但是,在某些情况下,客户端需要在收到前一个请求的响应之前发送另一个请求。比如:

  • HTTP POST Request1  <-- this is a long running operation on the server side
    
  •   HTTP POST Request2 <-- this comes from a different thread
    
  •   HTTP POST Response2
    
  • HTTP POST Response1
    

问题是 Request2 直到 Response1 到达才发送。这些请求是阻塞调用(同步),我不能让它们异步。

我尝试在初始化我的 RestClient 之前将 System.Net.ServicePointManager.DefaultConnectionLimit 设置为 20,但这没有帮助。

System.Net.ServicePointManager.DefaultConnectionLimit = 20;    
var Client = new RestClient("https://someURL");  

知道问题可能是什么吗?我可以做些什么来同时发送这些请求?

【问题讨论】:

    标签: rest http asp.net-web-api2 restsharp


    【解决方案1】:

    这是我服务器中的线程同步问题。我正在处理一个死锁情况。

    【讨论】:

      【解决方案2】:

      使用 RestClient.ExecuteAsync() 代替 .Execute() 可能会解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-09
        • 1970-01-01
        • 2013-05-22
        • 2020-09-13
        • 2013-12-09
        • 1970-01-01
        • 2019-02-05
        • 1970-01-01
        相关资源
        最近更新 更多