JsonServiceClient ResponseFilter 不触发
JsonServiceClient ResponseFilter doesn't trigger
也许我遗漏了一些简单的东西,但我一辈子都无法让 ResponseFilter
在 ServiceStack 中的 JsonServiceClient
上触发。 RequestFilter
每次都会触发(我正在向我的 API 发送一个 API 令牌)。这是一个示例控制台应用程序,显示 ResponseFilter
从不写入控制台。
static void Main(string[] args)
{
using (var client = new JsonServiceClient())
{
client.ResponseFilter = httpResponse =>
{
Console.WriteLine("ResponseFilter: StatusCode == " + httpResponse.StatusCode);
};
try
{
System.Net.HttpWebResponse response = client.Get("https://app.asana.com/api/1.0/users/me");
}
catch (Exception e)
{
Console.WriteLine("Exception => " + e.Message);
}
}
Console.ReadLine();
}
我使用的是最新的 ServiceStack v4.0.40.0
除了在 using 语句中处理的客户端之外,您提供的示例代码单独看起来是正确的。
创建客户端后,可以在 ResponseFilter 上注册一个操作,如上所示。
我已经在空的 ServiceStack ASP.NET 解决方案中创建了一个 example project on GitHub,并通过单元测试显示此过滤器正常工作。
代码的主要部分与您提供的片段非常相似。
bool calledRepsonseFilter = false;
var jsonServiceClient = new JsonServiceClient("http://techstacks.io/");
jsonServiceClient.ResponseFilter = response =>
{
Console.WriteLine("A response!");
calledRepsonseFilter = true;
};
var res = jsonServiceClient.Get(new AppOverview());
Assert.That(res.TopTechnologies != null);
Assert.That(calledRepsonseFilter == true);
我在 ServiceStack 论坛上给出了相同的答案,但是用答案更新了这个问题以防它也能帮助其他人。
希望对您有所帮助。
也许我遗漏了一些简单的东西,但我一辈子都无法让 ResponseFilter
在 ServiceStack 中的 JsonServiceClient
上触发。 RequestFilter
每次都会触发(我正在向我的 API 发送一个 API 令牌)。这是一个示例控制台应用程序,显示 ResponseFilter
从不写入控制台。
static void Main(string[] args)
{
using (var client = new JsonServiceClient())
{
client.ResponseFilter = httpResponse =>
{
Console.WriteLine("ResponseFilter: StatusCode == " + httpResponse.StatusCode);
};
try
{
System.Net.HttpWebResponse response = client.Get("https://app.asana.com/api/1.0/users/me");
}
catch (Exception e)
{
Console.WriteLine("Exception => " + e.Message);
}
}
Console.ReadLine();
}
我使用的是最新的 ServiceStack v4.0.40.0
除了在 using 语句中处理的客户端之外,您提供的示例代码单独看起来是正确的。
创建客户端后,可以在 ResponseFilter 上注册一个操作,如上所示。
我已经在空的 ServiceStack ASP.NET 解决方案中创建了一个 example project on GitHub,并通过单元测试显示此过滤器正常工作。
代码的主要部分与您提供的片段非常相似。
bool calledRepsonseFilter = false;
var jsonServiceClient = new JsonServiceClient("http://techstacks.io/");
jsonServiceClient.ResponseFilter = response =>
{
Console.WriteLine("A response!");
calledRepsonseFilter = true;
};
var res = jsonServiceClient.Get(new AppOverview());
Assert.That(res.TopTechnologies != null);
Assert.That(calledRepsonseFilter == true);
我在 ServiceStack 论坛上给出了相同的答案,但是用答案更新了这个问题以防它也能帮助其他人。
希望对您有所帮助。