在 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 元素。