【问题标题】:Can't set MIME types when using C# HttpListener使用 C# HttpListener 时无法设置 MIME 类型
【发布时间】:2020-11-26 03:27:17
【问题描述】:

我创建了一个 C# HttpListener()。

在请求处理程序中,我执行必要的操作,然后在响应对象上设置标头和 MIME 类型。但是,浏览器报告 MIME 类型始终为空。

private void HandleWebRequest(HttpListenerContext context)
{
    string path = context.Request.Url.LocalPath.ToLowerInvariant();
    HttpListenerResponse response = context.Response;
    HttpListenerRequest request = context.Request;
        
    try
    {
        // Respond to requests here. For ex:
        byte[] displayImage = HtmlHelper.GetTextResource(path.Substring(20));
        response.ContentLength64 = displayImage.Length;
        response.OutputStream.Write(displayImage, 0, displayImage.Length);
    }
    finally
    {
        SetResponseHeaders(path, response);
        response.Close();
    }
}

private void SetResponseHeaders(path, response)
{
    ...
    response.ContentType = MediaTypeNames.Text.Plain;
    response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With");
    response.AddHeader("Access-Control-Allow-Methods", "GET,POST");
    response.AddHeader("Access-Control-Allow-Origin", "*");
}

【问题讨论】:

    标签: c# http-headers mime httplistener


    【解决方案1】:

    问题是我在设置 Response.Close(); 时在末尾添加了标头和 MIME 类型;

    解决方法是在开头设置标题

    private void HandleWebRequest(HttpListenerContext context)
    {
        string path = context.Request.Url.LocalPath.ToLowerInvariant();
        HttpListenerResponse response = context.Response;
        HttpListenerRequest request = context.Request;
    
        // Set headers here
        SetResponseHeaders(path, response);
            
        try
        {
            // Respond to requests here. For ex:
            byte[] displayImage = HtmlHelper.GetTextResource(path.Substring(20));
            response.ContentLength64 = displayImage.Length;
            response.OutputStream.Write(displayImage, 0, displayImage.Length);
        }
        finally
        {
            response.Close();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-04-27
      • 2019-05-28
      • 1970-01-01
      • 2015-06-16
      • 2011-07-04
      • 1970-01-01
      • 2021-02-27
      • 2012-09-10
      • 2015-09-17
      相关资源
      最近更新 更多