Firebase:在Windows Phone上使用“接受:文本/事件流”

丹尼尔(Daniele)

我正在尝试通过EventSource / Server-Sent Events协议在Windows Phone上使用Firebase API。

如果未设置,下面的代码将起作用Accept: text/event-stream这样,我得到了整个请求的json。但是当Accept设置为text / event-stream时,该任务不会继续

随着request.AllowReadStreamBuffering设置为false不改变

var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.AllowAutoRedirect = true;
request.Accept = "text/event-stream";
//request.AllowReadStreamBuffering = false;

Task.Factory.FromAsync<WebResponse>(request.BeginGetResponse,
                                                        request.EndGetResponse,
                                                        null)
            .ContinueWith(async t => 
                { 
                    using (Stream s = t.Result.GetResponseStream())
                    {
                        byte[] buffer = new byte[1024 * 8];
                        int bytesRead = await s.ReadAsync(buffer, 0, buffer.Length);

                        string content = Encoding.UTF8.GetString(buffer, 0, bytesRead);
                        System.Diagnostics.Debug.WriteLine(content);
                    }
                });

谢谢!

丹尼尔(Daniele)

request.Method = "GET"是指比所述SSE协议PUT作用不同的HTTP操作方法。如果将请求方法设置为PUT,则会出现错误。

我不知道为什么,但是我解决了升级到Windows Phone 8.1并HTTPClientWindows.Web.Http命名空间中使用的问题(在8.0中不可用)。

这是代码:

    Uri url = new Uri("https://test.firebaseio.com/...");
    var request = new HttpClient();
    request.DefaultRequestHeaders.Accept.Clear();
    request.DefaultRequestHeaders.Accept.Add(new Windows.Web.Http.Headers.HttpMediaTypeWithQualityHeaderValue("text/event-stream"));

    Task task = request.GetAsync(url, HttpCompletionOption.ResponseHeadersRead).AsTask().ContinueWith(t =>
         {
             t.Result.Content.ReadAsInputStreamAsync().AsTask().ContinueWith(async t1 =>
                {
                    IInputStream istr = await t1;
                    Stream s = istr.AsStreamForRead();

                    byte[] buffer = new byte[1024 * 8];
                    int bytesRead = await s.ReadAsync(buffer, 0, buffer.Length);

                    string content = Encoding.UTF8.GetString(buffer, 0, bytesRead);
                    System.Diagnostics.Debug.WriteLine(content);
                });
        });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HttpClient在Windows Phone上缓冲响应流

来自分类Dev

如何在Windows上使用Firebase-tools?

来自分类Dev

如何在Windows上使用Firebase-tools?

来自分类Dev

Windows Phone 8.1在图像上写文本

来自分类Dev

使用VisualStateGroups更改Windows Phone 8上的文本框边框粗细

来自分类Dev

触摸Windows Phone c#上的启动事件句柄

来自分类Dev

触摸Windows Phone c#上的启动事件句柄

来自分类Dev

Google Maps阻止Windows Phone上的触摸事件

来自分类Dev

是否可以在Windows 8应用程序中使用Firebase?

来自分类Dev

pyside QTextEdit选定的文本事件

来自分类Dev

在Python中解析文本事件文件

来自分类Dev

Windows Phone 8文本框接受“返回作为提交”按钮

来自分类Dev

使用HttpClient的Windows Phone 8.1上的Cookie

来自分类Dev

在Windows Phone 8上使用Cookie

来自分类Dev

使用HttpClient的Windows Phone 8.1上的Cookie

来自分类Dev

在Windows Phone 8.1 RT上从{*}从语音命令获取文本

来自分类Dev

在Windows Phone(HTML / JS)上禁用预想文本

来自分类Dev

在Windows Phone(HTML / JS)上禁用预想文本

来自分类Dev

如何在Windows Phone应用中合并图像上的文本?

来自分类Dev

使用Windows Phone 8.1 Back键按下事件

来自分类Dev

Windows Phone 8的ScrollViewer事件

来自分类Dev

Windows Phone 8.1 ManipulationDelta事件

来自分类Dev

在Windows Phone上使用WNS Silverlight 8.1-MPNS在Windows Phone 8上

来自分类Dev

Windows Phone何时应使用进度指示器文本

来自分类Dev

Windows Phone不接受DCHP报价

来自分类Dev

事件未显示在Firebase上

来自分类Dev

移相器文本事件无法识别侦听器功能

来自分类Dev

Windows Phone 7创建视频流

来自分类Dev

Windows Phone的Microsoft TPL数据流

Related 相关文章

热门标签

归档