我是新来的卷曲。 我使用curl使用shell脚本上传文件。 我必须显式设置边界分隔符,并通过传递几个字段来发出HTTP请求。
我有几个问题:
是否可以使用GET方法显式设置边界分隔符? 如果是,怎么做?
如果没有,那么可以在POST方法中使用这样的东西(检查--data的参数)
curl --data" - 4ebf00fbcf09 & AB = MSG& tableView = simple& orient = UP& x-895892-n = 1
&安培; X-128754-O = 2和X-974573-P = 1&安培;客户=浏览器与d-984303-S =创建&安培;的 - 4ebf00fbcf09 - "
--header" Content-Type:multipart / form-data;边界= 4ebf00fbcf09"
www.xyz.com
非常感谢!
答案 0 :(得分:1)
这些分隔符用于多部分formposts,如果您确保使用--form而不是--data,curl会自动为您处理分隔符。
curl' s -d和-F之间的区别也在curl book in sectionly标题为" -d vs -F"。
中进行了解释。如果你真的想自己设置边界,你需要自己构建整个formpost RFC1867。
用于发送两个值的shell脚本" name = foo"和"值= 42":
#/bin/sh
boundary="------------------------2100d47bb8839948"
# generate the body
echo "$boundary" > post
echo 'Content-Disposition: form-data; name="name"' >> post
echo "" >> post
echo "foo" >> post
echo "$boundary" >> post
echo 'Content-Disposition: form-data; name="value"' >> post
echo "" >> post
echo "42" >> post
## final boundary uses two extra dashes
echo "$boundary--" >> post
curl -H "Content-Type: multipart/form-data; boundary=$boundary" localhost --data-binary @post