RestSharp 中有类似 HttpCompletionOption 的东西吗?
Is there something like a HttpCompletionOption in RestSharp?
我想在 Blazor 中做这样的事情:
HttpClient httpClient = new HttpClient
{
Timeout = TimeSpan.FromMilliseconds(Timeout.Infinite) };
var request = await httpClient.GetAsync("https://this.is.my.url", HttpCompletionOption.ResponseHeadersRead);
var stream = await request.Content.ReadAsStreamAsync();
var bufferedStream = new BufferedStream(stream);
}
但 Blazor 忽略了 HttpCompletionOption.ResponseHeadersRead
。
出于这个原因,我搜索了 HttpClient
class 的替代方法。
RestSharp 可能是我的问题的解决方案,但我找不到告诉 RestClient 一旦响应可用而不是在阅读包括内容.
RestSharp 中有类似 HttpCompletionOption.ResponseHeadersRead
的东西吗?
如果您在客户端 Blazor 中工作,则不可能实现您想要的,因为 HttpClient 通过 HTTP API fetch
工作,并且您通常会受到所有浏览器限制。
其他选项是将您的项目切换到服务器端 Blazor 并让您的代码 运行 在服务器上,届时您将拥有标准的 .NET 运行 代码。
你可以试试 request.SetBrowserResponseStreamingEnabled(true)
(https://docs.microsoft.com/de-de/dotnet/api/microsoft.aspnetcore.components.webassembly.http.webassemblyhttprequestmessageextensions.setbrowserresponsestreamingenabled?view=aspnetcore-6.0)
我想在 Blazor 中做这样的事情:
HttpClient httpClient = new HttpClient
{
Timeout = TimeSpan.FromMilliseconds(Timeout.Infinite) };
var request = await httpClient.GetAsync("https://this.is.my.url", HttpCompletionOption.ResponseHeadersRead);
var stream = await request.Content.ReadAsStreamAsync();
var bufferedStream = new BufferedStream(stream);
}
但 Blazor 忽略了 HttpCompletionOption.ResponseHeadersRead
。
出于这个原因,我搜索了 HttpClient
class 的替代方法。
RestSharp 可能是我的问题的解决方案,但我找不到告诉 RestClient 一旦响应可用而不是在阅读包括内容.
RestSharp 中有类似 HttpCompletionOption.ResponseHeadersRead
的东西吗?
如果您在客户端 Blazor 中工作,则不可能实现您想要的,因为 HttpClient 通过 HTTP API fetch
工作,并且您通常会受到所有浏览器限制。
其他选项是将您的项目切换到服务器端 Blazor 并让您的代码 运行 在服务器上,届时您将拥有标准的 .NET 运行 代码。
你可以试试 request.SetBrowserResponseStreamingEnabled(true)
(https://docs.microsoft.com/de-de/dotnet/api/microsoft.aspnetcore.components.webassembly.http.webassemblyhttprequestmessageextensions.setbrowserresponsestreamingenabled?view=aspnetcore-6.0)