Используйте HttpListener, чтобы получить формат входящих данных в .net - PullRequest
0 голосов
/ 20 сентября 2010

Я пишу программу на стороне сервера. Я создал HttpListener для прослушивания входящих запросов. Как я могу узнать, какие данные отправляются? Например. это текст, изображение, pdf, слово?

Пожалуйста, исправьте мой код ниже, если он неверен. Я действительно новичок в этом, и мое понимание концепции HTTP может быть неправильным. Спасибо.

main()
{
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://192.168.1.2/");
listener.Start();

while (true) //Keep on listening
{
context = listener.GetContext();
HttpListenerRequest request = context.Request;

//Do I get the request stream here, and do something with the stream to find out what data format is being sent?
Stream requestStream = request.InputStream;
}

}

1 Ответ

3 голосов
/ 20 сентября 2010

Единственный простой способ узнать, какой тип данных отправляется, - посмотреть заголовок Content-Type запроса (предоставляемый через свойство ContentType), который должен содержать тип MIME содержимого:

switch(request.ContentType)
{
    case "image/png":
    case "image/jpeg":
    case "image/bmp":
    case "image/gif":
    case "image/tiff":
        // OK, this is an image
        ...
        break;
    default:
        // Something else
        ...
        break;
}

Обратите внимание, что этот подход не всегда работает, потому что клиент может отправить запрос без указания заголовка Content-Type или отправить данные, которые не соответствуют заголовку ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...