在 QProcess 中使用 curl
Using curl in QProcess
我有一个问题与我上一个问题非常相似。但是我无法理解我在 QProcess 中传递给 cUrl 的参数之一有什么问题。代码是:
QStringList params;
const double timeout = 8.0;
params.append("'--connect-timeout " + QString("%1").arg(timeout) + "'");
params.append("-T" + obj->absoluteFilePath());
params.append("ftp://" + m_host + "/inbox" + m_logsPath + obj->name());
m_process->start("curl", params);
但它总是给我一个错误:curl: option --connect-timeout 8: is unknown。
再一次,当我从命令行 运行 它时,一切都很好。我知道我在传递 argumnets 时出错,但我找不到它。非常感谢!
尝试:
QStringList params;
const double timeout = 8.0;
params.append("--connect-timeout");
params.append(QString("%1").arg(timeout));
params.append("-T" + obj->absoluteFilePath());
params.append("ftp://" + m_host + "/inbox" + m_logsPath + obj->name());
m_process->start("curl", params);
对于你的版本,你传递的是
curl "'--connect-timeout <timeout>'" #curl sees 1 arg
我的是:
curl "--connect-timeout" "<timeout>" #curl sees 2 arg, as it is generally the case when executing it from a shell
请记住,start()
不会进一步拆分每个 params
元素。
我有一个问题与我上一个问题非常相似
QStringList params;
const double timeout = 8.0;
params.append("'--connect-timeout " + QString("%1").arg(timeout) + "'");
params.append("-T" + obj->absoluteFilePath());
params.append("ftp://" + m_host + "/inbox" + m_logsPath + obj->name());
m_process->start("curl", params);
但它总是给我一个错误:curl: option --connect-timeout 8: is unknown。 再一次,当我从命令行 运行 它时,一切都很好。我知道我在传递 argumnets 时出错,但我找不到它。非常感谢!
尝试:
QStringList params;
const double timeout = 8.0;
params.append("--connect-timeout");
params.append(QString("%1").arg(timeout));
params.append("-T" + obj->absoluteFilePath());
params.append("ftp://" + m_host + "/inbox" + m_logsPath + obj->name());
m_process->start("curl", params);
对于你的版本,你传递的是
curl "'--connect-timeout <timeout>'" #curl sees 1 arg
我的是:
curl "--connect-timeout" "<timeout>" #curl sees 2 arg, as it is generally the case when executing it from a shell
请记住,start()
不会进一步拆分每个 params
元素。