我正在使用 Nest API,它通过 Firebase 支持 REST 流。我有 REST 工作,但是我无法让它正确流式传输。这对我的应用程序来说非常重要,而 REST 对我想做的事情并不有效。
我正在使用 Hammock 来处理请求,这是代码:
public class NestAPI
{
private RestClient client { get; set; }
public NestAPI()
{
this.client = new RestClient();
this.client.Authority = "https://developer-api.nest.com/";
this.client.HasElevatedPermissions = true;
}
public void BeginStreaming()
{
RestRequest request = new RestRequest();
request.AddParameter("auth", App.accessToken);
request.RetryPolicy = new RetryPolicy() { RetryCount = 3 };
//Enables streaming
//request.AddHeader("Accept", "text/event-stream");
//request.StreamOptions = new StreamOptions() { Duration = new TimeSpan(96, 0, 0), ResultsPerCallback = 1 };
this.client.BeginRequest<object>(request, new RestCallback<object>(this.StreamCompletedEvent));
}
private void StreamCompletedEvent(RestRequest request, RestResponse<object> response, object userState)
{
//TO DO: check for errors first
string json = response.Content;
}
public void EndStreaming()
{
this.client.CancelStreaming();
}
}
此代码有效并且确实返回 JSON,但是我似乎无法启用流式传输。当我取消注释“启用流”下面的行时,回调事件永远不会触发。请务必注意,身份验证是使用 uri 参数“auth”完成的。
不幸的是,似乎没有可用的 Firebase 库,而 REST 是我唯一的选择。我想知道 JSON 属性何时发生变化并想在流式传输时设置不同的值。