servicestack Servicestack GetAsync OnSuccess未激发
我使用ServiceStack来原型化web服务API,在测试GetAsync时遇到了一个问题。具体地说,onSuccess操作在我期望的时候不会被调用 这是我的密码: 服务器:
servicestack Servicestack GetAsync OnSuccess未激发,
servicestack,
servicestack,我使用ServiceStack来原型化web服务API,在测试GetAsync时遇到了一个问题。具体地说,onSuccess操作在我期望的时候不会被调用 这是我的密码: 服务器: [Route("/accounts/", "GET") public class AccountRequest : IReturn<AccountResponse> { public string EmailAddress {get; set;} } public class AccountRes
[Route("/accounts/", "GET")
public class AccountRequest : IReturn<AccountResponse>
{
public string EmailAddress {get; set;}
}
public class AccountResponse
{
public Account Account {get; set;}
}
public class AccountService : Service
{
public object Get(AccountRequest request)
{
return new AccountResponse{Account = new Account.....
}
}
然而,这完全符合预期
using(var client = new JsonServiceClient("some url")
{
var acc = client.Get(new AccountRequest{EmailAddress = "gibbons"});
//acc is exactly as expected.
}
有趣的是,一个接一个地测试异步和非异步也是可行的:
using(var client = new JsonServiceClient("some url")
{
client.GetAsync(new AccountRequest{EmailAddress = "gibbons"},
response => Console.WriteLine(response.Account.Something), //Works
(response, ex) => {throw ex;});
var acc = client.Get(new AccountRequest{EmailAddress = "gibbons"});
//Again, acc is exactly as expected.
}
在所有情况下,我都可以看到通过Fiddler通过HTTP传输的实际数据,因此我认为我对异步api的工作原理缺乏一些基本的了解
欢迎任何帮助。谢谢。在响应完成之前,阻塞同步API不会返回,因为异步API是非阻塞的,所以执行会立即继续。只有在返回和处理响应时才会触发回调 在测试中,它使用
Thread.Sleep(1000)
休眠1秒,然后断言及时返回了响应
您等待多长时间来确定是否触发回调?是的-我只是没有等待足够长的时间来响应。谢谢
using(var client = new JsonServiceClient("some url")
{
client.GetAsync(new AccountRequest{EmailAddress = "gibbons"},
response => Console.WriteLine(response.Account.Something), //Works
(response, ex) => {throw ex;});
var acc = client.Get(new AccountRequest{EmailAddress = "gibbons"});
//Again, acc is exactly as expected.
}