小编Jon*_*Jon的帖子

asp.net Core 1.1的响应速度很快

希望有人能在以下方面启发我.

我有一个客户端会向控制器端点发出请求(没有视图,c#到c#甚至C++以后).该控制器必须发送响应,因为它以json异步方式获取响应(将json1发送到客户端,然后发送json2,然后发送json3直到它关闭连接或发送空终止文本或类似文件).目的是将结果流回客户端,以便在服务器仍然有效时开始处理.

我的控制器端点如下所示:

        [HttpGet("testStream")]
        public async Task testStream()
        {
            var response = HttpContext.Response;
            response.Headers[HeaderNames.TransferEncoding] = "chunked";


            for (var i = 0; i < 10; ++i)
            {
                await response.WriteAsync($"6\r\ntest {i}\r\n");

                await response.Body.FlushAsync();
                await Task.Delay(1 * 1000);
            }
            await response.WriteAsync("0\r\n\r\n");
            await response.Body.FlushAsync();
        }
Run Code Online (Sandbox Code Playgroud)

我的测试看起来像这样:

        static async void DownloadPageAsync()
        {
            // ... Target page.
            string page = "http://localhost:8080/api/Stream/testStream";
            Console.WriteLine("test");
            while (!Debugger.IsAttached) Thread.Sleep(500);
            // ... Use HttpClient.
            using (HttpClient client = new HttpClient())
            using (var response = await client.GetAsync(page, HttpCompletionOption.ResponseHeadersRead))
            using (HttpContent content = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core-mvc .net-core asp.net-core

5
推荐指数
1
解决办法
2188
查看次数

标签 统计

.net-core ×1

asp.net-core ×1

asp.net-core-mvc ×1

c# ×1