ServiceStack JsonServiceClient:SendAsync 使用了错误的路径,忽略了 Route 属性?
ServiceStack JsonServiceClient: SendAsync uses wrong path, ignores Route attribute?
我在 Xamarin 应用程序中使用 JsonServiceClient,如下所示:
JsonServiceClient client = new JsonServiceClient("https://my.domain.com/");
SetHeaders(client);
var request = ...; // this is IRequest<T>
var result = await client.SendAsync(request); // <-- FAILS, can't find service
我的后端returns一个回答,说那个端点没有服务,这是真的,实际上通过线路发送的路径是不正确的。
request
定义在一个lib中,像这样:
[Route("/mybasepath/endpoint", "POST")]
public class Login : IReturn<LoginResponse>
{
}
问题是调用时使用的路径错误,不遵循Route属性:
https://my.domain.com/json/reply/Login
在这里,ServiceStack 客户端使用默认的 /json/reply
路径,即使我在 DTO 中定义了 Route
属性。
如果我更改在 client
实例上使用的方法,而不是使用 PostAsync
,路径是十个正确的并且调用按预期工作:
JsonServiceClient client = new JsonServiceClient("https://my.domain.com/");
SetHeaders(client);
var request = ...; // this is IRequest<T>
var result = await client.PostAsync(request); // <-- WORKS!
我现在没有可以立即测试的最小项目,也许是我错过的简单项目?
(在 VS 2019 16.9 上使用 ServiceStack.Client v 5.10.4)
如果您想使用 ServiceStack 的通用 Send*
API,服务客户端需要通过使用从其基础 类.
否则 Send*
API 旨在回退以使用 ServiceStack 的 pre-defined Routes。
我在 Xamarin 应用程序中使用 JsonServiceClient,如下所示:
JsonServiceClient client = new JsonServiceClient("https://my.domain.com/");
SetHeaders(client);
var request = ...; // this is IRequest<T>
var result = await client.SendAsync(request); // <-- FAILS, can't find service
我的后端returns一个回答,说那个端点没有服务,这是真的,实际上通过线路发送的路径是不正确的。
request
定义在一个lib中,像这样:
[Route("/mybasepath/endpoint", "POST")]
public class Login : IReturn<LoginResponse>
{
}
问题是调用时使用的路径错误,不遵循Route属性:
https://my.domain.com/json/reply/Login
在这里,ServiceStack 客户端使用默认的 /json/reply
路径,即使我在 DTO 中定义了 Route
属性。
如果我更改在 client
实例上使用的方法,而不是使用 PostAsync
,路径是十个正确的并且调用按预期工作:
JsonServiceClient client = new JsonServiceClient("https://my.domain.com/");
SetHeaders(client);
var request = ...; // this is IRequest<T>
var result = await client.PostAsync(request); // <-- WORKS!
我现在没有可以立即测试的最小项目,也许是我错过的简单项目?
(在 VS 2019 16.9 上使用 ServiceStack.Client v 5.10.4)
如果您想使用 ServiceStack 的通用 Send*
API,服务客户端需要通过使用从其基础 类.
否则 Send*
API 旨在回退以使用 ServiceStack 的 pre-defined Routes。