小编smu*_*agh的帖子

使用.net Core中的HttpClient下载分块编码文件

我正在使用API​​来使用HttpClient下载文件.当我的整个文件适合单个请求时,我可以保存文件并正确打开它.

当整个文件不符合我的最大块大小时,我必须对我的API做多个请求以获取文件,并且它返回了chunked编码.猜测是块没有正确解码并最终在我的文件中破坏它.

有没有办法对来自GetStreamAsync的响应进行块解码?

public byte[] GetFileContent(File file)
{
    var baseFileUri = BASE_URI + $"platform/files/{file.Id}";

    int chunkSize = 128 * 1024;

    chunkSize = file.NativeSize <= chunkSize ? file.NativeSize : chunkSize;
    int start = 0;

    using (MemoryStream stream = new MemoryStream())
    {
        while (start < file.NativeSize)
        {
            Get(baseFileUri, new List<KeyValuePair<string, string>>() { new KeyValuePair<string, string>("offset", start.ToString()), new KeyValuePair<string, string>("size", chunkSize.ToString()) }, stream);

            start = start + chunkSize;

            if (file.NativeSize < start + chunkSize)
            {
                chunkSize = file.NativeSize - start;
            }
        }

        return …
Run Code Online (Sandbox Code Playgroud)

c# dotnet-httpclient .net-core

8
推荐指数
1
解决办法
458
查看次数

ASP.NET Core IViewLocalizer 不提取我的字典查找值

对此感到非常沮丧,因为我可以让它在“Hello World”应用程序上运行,但不能在我真正的应用程序上运行。这是我的配置方式:

配置服务:

services.AddLocalization(options => options.ResourcesPath = "Resources");

services.AddMvc(config =>
{
    var policy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
    config.Filters.Add(new AuthorizeFilter(policy)); 
}).AddViewLocalization(Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat.Suffix)
    .AddDataAnnotationsLocalization();
Run Code Online (Sandbox Code Playgroud)

配置:

IList<CultureInfo> supportedCultures = new List<CultureInfo>
{
    new CultureInfo("en-US"),
    new CultureInfo("es-ES"),
};

app.UseDefaultFiles();

app.UseRequestLocalization(new RequestLocalizationOptions
{
    DefaultRequestCulture = new RequestCulture("en-US"),
    SupportedCultures = supportedCultures,
    SupportedUICultures = supportedCultures
});

app.UseStaticFiles();

app.UseSession();

app.UseAuthentication();

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Dashboard}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

_ViewImports.cshtml(添加了 taghelpers nuget pkg)

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers.Localization
Run Code Online (Sandbox Code Playgroud)

/Views/Account/Login.cshtml

@inject IViewLocalizer Localizer
@{
    ViewData["Title"] = "Log in"; …
Run Code Online (Sandbox Code Playgroud)

asp.net-core asp.net-core-localization

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