【发布时间】:2019-03-25 10:25:11
【问题描述】:
通过 restsharp.org 请求 API 很容易, 但是当我需要调用两个不同的 API 时,第一个请求包含代码,并且在响应第二个开始后,我认为这是不正确的, 以下是我的代码:
var client = new RestClient("http://xxx.yyy.com/");
var requestHotels = new RestRequest("api/hotelUi/home/hotelList", Method.POST);
requestHotels.AddParameter("take", "16");
IRestResponse hotels = client.Execute(requestHotels);
List<Hotel> topHotels = JsonConvert.DeserializeObject<List<Hotel>>(hotels.Content);
var requestCities = new RestRequest("api/hotelUi/home/cityList", Method.POST);
requestCities.AddParameter("take", "16");
IRestResponse cities = client.Execute(requestCities);
List<City> topCities = JsonConvert.DeserializeObject<List<City>>(cities.Content);
如您所见,城市请求等到酒店请求响应,但我认为它们都必须发送,并等到两个响应都返回。
我该怎么做?
【问题讨论】:
-
您可以使用 ExecuteAsync 或 ExecuteTaskAsync 方法代替 Execute。
-
@Wokuo 怎么样?在示例中没有多重请求,我如何理解两个请求都完成了?
-
This is not specifically for RestSharp 但你可以应用它。您必须了解 async/await 才能使用建议的 RestSharp 的
ExecuteAsync方法。