使用HttpListener获取.net中传入数据的格式

时间:2010-09-20 06:49:30

标签: c# .net http httprequest

我正在编写服务器端程序。 我创建了一个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 个答案:

答案 0 :(得分:3)

了解正在发送的数据类型的唯一简单方法是查看请求的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标头,或发送与标头不匹配的数据...