sslion
@sslion

HttpListener разбить URL запроса?

В HttpListener получаю запрос от клиента, в AbsolutePath беру путь запроса. Как мне узнать, клиент запрашивает путь или файл. Если файл. то вернуть клиенту содержимое с нужным миме-типом?

Например иконку я вывожу так:
if (req.Url.AbsolutePath == "/favicon.ico")
{
        string iconFilePath = publicDir + "/favicon.ico";
        byte[] fileData = {};

        try
        {
            fileData = System.IO.File.ReadAllBytes(fileName);
            context.Response.ContentType = "image/png"; 
            context.Response.ContentLength64 = fileData.Length;
            context.Response.OutputStream.Write(fileData, 0, fileData.Length);
        }
        catch (Exception ex)
        {
            context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
            Console.WriteLine("Error: " + ex.Message + " " + ex.StackTrace);
        }
        finally
        {
            context.Response.OutputStream.Close();
        }
        continue;
}


а если это путь, то вызвать Класс:Метод в зависимости от запрошенного пути
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
AshBlade
@AshBlade Куратор тега C#
Просто хочу быть счастливым
1. Жесткие пути с файлами (favicon.ico в примере) - отдаешь нужный файл
2. Префикс для путей файлов (/static/... например) - проверяешь файл и отдаешь ответ
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
04 июн. 2024, в 04:21
30000 руб./за проект
04 июн. 2024, в 02:08
3000 руб./за проект
04 июн. 2024, в 01:34
5000 руб./за проект