我有一个工作的curl命令,我想拆分它以便于阅读。
curl d "valuea=1234&valueb=4567&valuec=87979&submit=Set" -XPOST "http://$ipa/school.cgi" > /dev/null
我已经尝试了几种方法来做到这一点,但似乎都没有。
curl -d "valuea=1234"\
-d "valueb=4567"\
-d "valuec=87979"\
-d "submit=Set"\
-XPOST "http://$ipa/school.cgi"
curl -d "valuea=1234\
valueb=4567\
valuec=87979\
submit=Set"\
-XPOST "http://$ipa/school.cgi"
有人可以建议怎么做吗?
由于
答案 0 :(得分:2)
第一种方法是正确的,我在一些修剪空白的环境中在多行上传播命令时遇到了问题,因此在反斜杠之前添加一个空格是个好主意:
url -d "valuea=1234" \
-d "valueb=4567" \
-d "valuec=87979" \
-d "submit=Set" \
-XPOST "http://$ipa/school.cgi"
最终尝试对付一个简单的服务,它将通知您正在接收的内容,例如:
// echorequest.js
const http = require('http');
const hostname = '0.0.0.0';
const port = 3001;
const server = http.createServer((req, res) => {
console.log(`\n${req.method} ${req.url}`);
console.log(req.headers);
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
let data = '';
req.on('data', function(chunk) {
data += chunk
});
req.on('end', function() {
console.log('BODY: ' + data);
res.end(data + "\n");
});
});
server.listen(port, hostname, () => {
console.log(`Server running at http://localhost:${port}/`);
});
...由node echorequest.js
运行(&更改命令的目标:-XPOST "localhost:3001"
)
答案 1 :(得分:0)
第二种方法也可以通过添加缺失的'&'来实现。
例如
POST:
curl http://url -d \
"valuea=1234&\
valueb=4567&\
valuec=87979&\
submit=Set"
GET:
curl "http://url?valuea=1234&\
valueb=4567&\
valuec=87979&\
submit=Set"
如果您需要即时测试请求的服务,请尝试https://requestbin.fullcontact.com/