rest - 使用 RestSharp 提交并发 HTTP 请求
问题描述
我有一个作为自托管 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");
知道问题可能是什么吗?我该怎么做才能同时发送这些请求?
解决方案
使用RestClient.ExecuteAsync()而不是.Execute()可以解决问题。
推荐阅读
- php - 使用 Unisharp/Laravel-filemanager 编辑应用程序的特定文件夹
- mysql - 安装 phpmyadmin 期间因用户错误而拒绝访问
- networking - 发送包含 IPv4 和 TCP SYN 的原始以太网数据包,但未在响应数据包中获得 SYN/ACK 数据包
- r - 如何在r中的ggplot中连接NA干预的点?
- python - 如果我在 django 视图中返回 None 并在中间件中处理它怎么办?
- cython - 融合类型:未声明的名称未内置:双
- java - 需要正则表达式来解析java中的where子句查询
- phpstorm - 在 PhpStorm 2019.2.3 功能“重新格式化代码”中以错误的方式格式化刀片代码
- c# - 转换列表
包含多对多关系项为一对多关系 - asp.net-core - 带有 ASP.NET Core 的 Visual Studio 2019 挂起(无响应)