How to get content type of a web address?

前端 未结 5 370
故里飘歌
故里飘歌 2020-12-03 22:21

I want to get type of a web address. For example this is a Html page and its page type is text/html but the type of this is text/xml. this page\'s

相关标签:
5条回答
  • 2020-12-03 22:40

    HTTP Response header: content-type

    For a more detailed response, please provide a more detailed question.

    0 讨论(0)
  • 2020-12-03 22:56

    Read up on HTTP headers.

    HTTP headers will tell you the content type. For example:

    content-type: application/xml.

    There are two ways to determining the content-type

    1. the file extension invoked by the URL
    2. the http header content-type

    The first one was somewhat promoted by microsoft during to old days and is not a good practice anymore.

    If the client has display constraints accepting only certain content-type, it would request the server with the headers like

    accept: application/json
    accept: text/html
    accept: application/xml
    

    And then if the server could supply one of those and chooses XML it would return the content with the header

    content-type: application/xml.
    

    However, some services include further information like

    content-type: application/xml; charset=utf-8
    

    rather than using a header of its own for the character encoding.

    0 讨论(0)
  • 2020-12-03 23:01

    You can detect the Content-Type by the Http header of the response,for http://bayanbox.ir/user/ahmadalli/images/div.png ,the header is

    Connection:keep-alive
    Content-Encoding:gzip
    Content-Type:text/html; charset=utf-8
    Date:Tue, 14 Aug 2012 03:01:41 GMT
    Server:bws
    Transfer-Encoding:chunked
    Vary:Accept-Encoding
    
    0 讨论(0)
  • 2020-12-03 23:01
    using (MyClient client = new MyClient())
        {
            client.HeadOnly = true;
            string uri = "http://www.google.com";
            byte[] body = client.DownloadData(uri); // note should be 0-length
            string type = client.ResponseHeaders["content-type"];
            client.HeadOnly = false;
            // check 'tis not binary... we'll use text/, but could
            // check for text/html
            if (type.StartsWith(@"text/"))
            {
                string text = client.DownloadString(uri);
                Console.WriteLine(text);
            }
        }
    

    Will get you the mime type from the headers without downloading the page. Just look for the content-type in the response headers.

    0 讨论(0)
  • 2020-12-03 23:05

    it should be something like this

        var request = HttpWebRequest.Create("http://www.google.com") as HttpWebRequest;
        if (request != null)
        {
            var response = request.GetResponse() as HttpWebResponse;
    
            string contentType = "";
    
            if (response != null)
                contentType = response.ContentType;
        }
    
    0 讨论(0)
提交回复
热议问题