我设法通过了选项编号 256。
CoapClient client = new CoapClient(...);
Request request = new Request(CoAP.Code.GET, CoAP.Type.NON);
OptionSet optionSet = new OptionSet();
optionSet.addOption(new Option(256, "admin:admin"));
request.setOptions(optionSet);
client.advanced(request); // or async version
client.shutdown();
在资源:
@Override
public void handleGET(CoapExchange exchange) {
OptionSet optionSet = exchange.advanced().getRequest().getOptions();
List<Option> options = optionSet.asSortedList();
options.stream()
.filter(o -> o.getNumber() == 256)
.findFirst()
.ifPresent(o -> System.err.println(o.getNumber() + " " + o.getStringValue()));
}
输出:
256 admin:admin
但是,选项编号 256 通常可能不是正确的选择:
RFC 7252 受限应用协议 (CoAP)。12.2. CoAP 选项号码登记处
IANA 未来添加到该子注册管理机构的政策分为三个层次,如下所示。0..255 的范围保留给 IETF 定义的选项(IETF Review 或 IESG Approval)。256..2047 的范围保留给具有公共规范的常用选项(需要规范)。2048..64999 的范围适用于所有其他选项,包括私有选项或供应商特定选项,这些选项经过指定专家审查,以帮助确保正确定义选项语义。65000 和 65535(含)之间的选项编号保留用于实验。它们不适用于任何类型的供应商特定用途,并且不得用于操作部署。