You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CoAP的Resource类中获取客户端写入的uri_path名称

解决方法

要获取资源注册的URI路径,你需要在Resource实例化时将路径传递给类内部保存——request.uri_path返回的是客户端请求的路径,而我们需要的是当前资源绑定的注册路径。具体实现如下:

修改Resource类

class Humidity(resource.Resource):
    def __init__(self, uri_path):
        super().__init__()
        self.uri_path = uri_path  # 保存注册的URI路径

    async def render_post(self, request):
        payload = request.payload.decode("ascii")
        print("Received message: ", payload, "from", self.uri_path)
        return aiocoap.Message(code=CHANGED, payload=b"ACK")

实例化资源时传递路径

root.add_resource(('humidity_sensor1_indus',), Humidity('humidity_sensor1_indus'))

这样就能在打印时输出该资源对应的注册URI路径。如果同一个Resource类需要注册到多个不同路径,只需在实例化时传入对应路径即可,每个实例会独立保存自己的路径信息。

内容的提问来源于stack exchange,提问作者Tasbiha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 21:40:35