我正在尝试向实现超文本咖啡壶控制协议(HTCPCP/1.0,在 RFC 2324 中定义)的服务器发送 BREW 请求,该协议是使用 cURL 构建在 HTTP 之上的协议。
我想煮一杯加奶油和一杯香草糖浆的咖啡,但到目前为止我的所有请求都被服务器拒绝了。
令人困惑的是,RFC 规定 Content-Type 必须设置为“application/coffee-pot-command”(第 2.11 节),但也规定 Content-Type 必须设置为“message/coffeepot”(第 4 节),另外还规定“message/coffeepot”的内容必须包含coffee-message-body,定义为coffee-message-body =“start”|“stop”)。我选择了“application/coffee-pot-command”,纯粹是把它放在第一位(但我两种都尝试过)。
接下来,我添加了一个“Accept-Additions”标题,将牛奶类型指定为“奶油”,将糖浆类型指定为“香草”。RFC 概述了此标头的 BNF:
Accept-Additions = "Accept-Additions" ":"
#( addition-range [ accept-params ] )
addition-type = ( "*"
| milk-type
| syrup-type
) *( ";" parameter )
milk-type = ( "Cream" | "Half-and-half" | "Whole-milk"
| "Part-Skim" | "Skim" | "Non-Dairy" )
syrup-type = ( "Vanilla" | "Almond" | "Raspberry"
| "Chocolate" )
Run Code Online (Sandbox Code Playgroud)
我对这部分的最佳猜测是我需要添加以下标头:
--header "Accept-Additions: Skim;1,Vanilla;1"
Run Code Online (Sandbox Code Playgroud)
虽然我没有解释 BNF …
阅读以下资源,它说int /指针的大小可能因编译器而异:
http://www.c4learn.com/c-programming/c-size-of-pointer-variable/
为什么是这样?
我理解C只定义了一个类型应该保存的最小和最大数量,但为什么一个编译器选择将例如int设置为2个字节而另一个设置为4?一个人比另一个人有什么优势?