簡體   English   中英

如何為CoAP請求添加其他選項?

[英]How to add extra options to CoAP request?

我知道CoAP定義了一些可以包含在發送請求中的選項,每個選項都有自己的編號。 CoAP uri請求的結構如下:

coap-URI =“ coap:”“ //”主機[“:”端口]路徑豁免[“?” 查詢

在其中包含一些選項,例如:Uri-Host,Uri-Port,Uri-Path和Uri-Query,它們每個都有自己的編號,例如:Uri-Host為3,Uri Path為11。 。 我想為此CoAP請求添加更多其他選項,例如一些選項編號256、257 ...我該怎么做?

謝謝高級

兒子

我設法通過了選件編號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審查或IESG批准)定義的選項。 256..2047的范圍保留用於具有公共規范(需要規范)的常用選項。 2048..64999的范圍適用於所有其他選項,包括專用選項或特定於供應商的選項,這些選項均經過指定專家審核,以幫助確保正確定義選項語義。 保留65000到65535之間的選件號供實驗使用。 它們不適合用於任何特定於供應商的用途,並且絕不能在運營部署中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM