【问题标题】:katana /owin middleware with parameterkatana /owin 带参数的中间件
【发布时间】:2014-06-05 17:55:05
【问题描述】:

我尝试构建一个参数化中间件,但我只收到 http 504 错误。此代码在没有参数的情况下可以正常工作

有什么想法吗?

public void Configuration(IAppBuilder app)
{
    app.Use<MyMiddleware>("Hello");
}

class MyMiddleware : OwinMiddleware
{
    public MyMiddleware(OwinMiddleware next, string message)
    : base(next)
    {
        Message = message;
    }

    public string Message  { get; set; }

    public override async Task Invoke(IOwinContext context)
    {
        context.Response.ContentLength = Message.Length;
        context.Response.ContentType = "text/html";
        await context.Response.WriteAsync(Message);
        await Next.Invoke(context);
    }
}

【问题讨论】:

  • 我刚刚发现这个问题只附加了像“hello Frédo”这样的字符串编码问题?但这很奇怪

标签: owin katana


【解决方案1】:

好的,我找到了问题

ContentLength 应该像这样在 Utf-8 中评估:

Encoding.UTF8.GetBytes(Message).Length

c#默认使用utf-16编码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多