关于UPnP Device Architecture 2.0的阅读笔记(十二)

    xiaoxiao2025-07-11  10

    设备描述之使用HTTP获取描述文件

        如前面的描述,当一个控制点发现一个设备,它只了解了设备的很少信息,要获取设备的更详细的功能,控制点应该从发现消息提供的设备描述URL中提取出设备的描述文件.然后,控制点从设备描述文件中通过描述URL获取到该设备的多个服务描述.这是个基于HTTP的过程.

        获取设备描述文件很简单:控制点向发现消息中的URL发出一个HTTP GET请求,设备在HTTP响应的消息体中返回其设备描述.服务描述文件的获取也是这个过程.请求和响应消息的消息头信息和消息体在下面详细介绍.

        首先,控制点应该发送一个GET方法的请求,格式如下:

             GET /descriptionPath HTTP/1.1    #请求行,GET是HTTP定义的方法.路径URL.HTTP版本

            HOST: hostname:portNumber    #头信息,HOST必须,URL

            ACCEPT-LANGUAGE: language preferred by control point    #允许

        当一个控制点发送一个请求,设备进行第二步(描述)响应并发送其描述的拷贝.设备应在30s内响应.如果设备超出时间,控制点应该重发请求.两个响应格式的例子如下:

        1)使用CONTENT-LENGTH头信息的响应(HTTP/1.0或HTTP/1.1)

            HTTP/1.1 200 OK                                                                      #状态行 "200 OK"表示没有错误的状态码         CONTENT-LANGUAGE: language used in description    #头信息         CONTENT-LENGTH: bytes in body         CONTENT-TYPE: text/xml; charset="utf-8"         DATE: when responded         Body    

        2)使用分块编码的响应(仅HTTP/1.1):如果请求消息支持HTTP/1.1,则可以以分块的消息体响应

            HTTP/1.1 200 OK                                                                  #状态行         TRANSFER-ENCODING: chunked                                   #表示消息体分块编码         CONTENT-TYPE: text/xml; charset="utf-8"         CONTENT-LANGUAGE: language used in description         DATE: when responded         Length of chunk 1 in hexadecimal notation             Chunk 1         Length of chunk 2 in hexadecimal notation             Chunk 2

            0

    转载请注明原文地址: https://ju.6miu.com/read-1300582.html
    最新回复(0)