我想curl用多个标题发出请求.解决方案是创建此命令:
curl -H "keyheader: value" -H "2ndkeyheader: 2ndvalue" ...
Run Code Online (Sandbox Code Playgroud)
我的目标是只使用一个变量和所有标题,如:
headers='-H "keyheader: value" -H "2ndkeyheader: 2ndvalue" '
curl $headers
Run Code Online (Sandbox Code Playgroud)
发送
curl -H "keyheader: value" -H "2ndkeyheader: 2ndvalue"
Run Code Online (Sandbox Code Playgroud)
目前,问题是:我可以使用'或"声明我的字符串,但bash尝试运行之后"-H"作为参数然后回答:
command unknown
Run Code Online (Sandbox Code Playgroud)
想知道这里出了什么问题.
我正在尝试使用 Google 的 protobuf。我使用 subMessage,我用随机值设置它并将 subMessage 存储在 mainMessage 中。以下是适合我的情况的示例消息:
message subMessage{
required int32 val1= 1;
required int32 val2= 2;
required int32 val3= 3;
required int32 val4= 4;
}
message mainMessage{
required subMessage sub = 1;
}
Run Code Online (Sandbox Code Playgroud)
我的主要:
int main (int argc,char** argv){
subMessage sM;
mainMessage mM;
sM.set_val1(10);
sM.set_val2(9);
sM.set_val3(8);
sM.set_val4(7);
Run Code Online (Sandbox Code Playgroud)
然后我尝试:
mM.set_allocated_submessage(&sM);
Run Code Online (Sandbox Code Playgroud)
但它会导致程序结束时出现分段错误(对象的破坏?)。解决它的唯一方法是手动调用mM.release_submessage();.
我也试过:
*mM.mutable_submessage()=subMessage;
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我会出现分段错误,因为我的程序在此之后立即停止(在我的 subMessage 或我的 mainMessage 上没有任何访问/写入)。
根据谷歌的文档:
void set_allocated_foo(Bar* bar):将 Bar 对象设置为该字段并释放前一个字段值(如果存在)。如果 Bar 指针不为 NULL,则消息获得分配的 Bar 对象的所有权,has_foo() 将返回 true。否则,如果 Bar 为 …