我正在使用 ServiceStack ServiceClient 来编写 API 包装器。如果要返回的实体数量过多,API 将返回 HTTP 206。是否有一种使用 ServiceClient 处理此问题的好方法,例如对于这样包装的 API 端点:
var result = client.Get<IEnumerable<TResource>>("path");
我正在使用 ServiceStack ServiceClient 来编写 API 包装器。如果要返回的实体数量过多,API 将返回 HTTP 206。是否有一种使用 ServiceClient 处理此问题的好方法,例如对于这样包装的 API 端点:
var result = client.Get<IEnumerable<TResource>>("path");
这是返回HTTP 206的ServiceStack服务吗?因为这不是 ServiceStack 内置的行为。如果您使用的是 ServiceStack,您可能需要增加 IIS/ASP.NET 请求限制以允许更大的响应。
否则,如果您正在与 3rd Party API 交谈,则不应使用ServiceStack 的服务客户端,这些服务客户端倾向于使用 ServiceStack 服务。您应该改用 ServiceStack 中内置的HTTP Utils之类的东西,如果您的服务支持,您可以指定自定义 HTTP 标头,您可以通过在 HTTP 请求过滤器中指定它来请求部分内容范围,例如:
var json = "http://example.org/users".GetJsonFromUrl(
requestFilter: httpReq => httpReq.AddRange(0, 1000));