我正在使用ServiceStack 4客户端来访问RESTful api端点。我写了两个方法来返回一个对象列表。 synchronize方法按预期返回数据。异步方法挂起就行了:
var response = await client.GetAsync<List<Debtor>>("api/Debtor");
这就是我的方法的定义方式:
public async Task<List<Debtor>> GetDebtorsAsync()
{
var debtors = new List<Debtor>();
try
{
var client = new JsonServiceClient(GlobalSingleton.ServerURI);
var response = await client.GetAsync<List<Debtor>>("api/Debtor");
debtors = response;
}
catch (Exception ex)
{
throw;
}
return debtors;
}
List<Debtor> IDebtorDal.GetDebtors()
{
var debtors = new List<Debtor>();
try
{
var client = new JsonServiceClient(GlobalSingleton.ServerURI);
var response = client.Get<List<Debtor>>("api/Debtor");
var r = response.GetResponseStatus();
debtors = response;
}
catch (Exception ex)
{
var x = ex.Message;
throw;
}
return debtors;
}
答案 0 :(得分:2)
ServiceStack Service Clients只应用于调用ServiceStack Services。您可以使用HTTP Utils来呼叫第三方(即非ServiceStack)服务。
JsonServiceClient
使用.NET HttpWebRequest
,它对单个域的并发HTTP请求数有默认限制,可以通过以下方式增加:
ServicePointManager.DefaultConnectionLimit = n;
另外,对于异步请求,您可以使用JsonHttpClient
而不是基于Microsoft的HttpClient
更新,而path2.MoveTo(0, 0);
path2.LineTo(0, 140);
path2.LineTo(140, 140);
path2.LineTo(0, 0);
path2.Close();
没有这些限制。