我正在尝试通过scala为scalatest执行curl命令, CURL:
curl -H "Content-Type: application/json" --data @/home/examples/demo/demo.json http://localhost:9090/job
当我尝试使用scala时,它会起到预期作用,比如
import scala.sys.process._
val json = getClass.getClassLoader.getResource(arg0).getPath
val cmd = Seq("curl", "-H", "'Content-Type: application/json'","-d", s"@$json","http://localhost:9090/job")
cmd.!
并产生以下错误
Expected 'application/json'
答案 0 :(得分:3)
你引用太多:
Seq("curl", "-H", "'Content-Type: application/json'","-d", s"@$json","http://localhost:9090/job")
// !^! !^!
应该是:
Seq("curl", "-H", "Content-Type: application/json", "-d", s"@$json","http://localhost:9090/job")
// ! !
您需要在shell中引用内容类型的原因是因为 shell 会在未引用的情况下将其分解。 Curl不知道如何处理报价,因为报价不是它的业务。 Scala也不会进行任何分词,因为这是你的工作。