Ich versuche scala.sys.process._ zu verwenden, um eine POST-Anfrage an meinen Chronos -Server mit Curl zu senden. Da in den Argumenten des Befehls Leerzeichen enthalten sind, verwende ich die Seq[String]
Variante von cmd.!!
Ich baue den Befehl so:
%Vor%was wie erwartet
erzeugt %Vor% jedoch scheint dies das Argument 'Content-Type: application/json'
zu mindern:
was ich nicht verstehe. Im Gegensatz dazu funktioniert der Aufruf von cmd.mkString(" ")
und Kopieren + Einfügen in das Terminal wie erwartet.
Ich habe zahlreiche Varianten des Arguments -H vergeblich ausprobiert, keine Einsicht in die Benutzung von einfachen Anführungszeichen in sys.process ._s !! würde sehr geschätzt werden.
Ich habe auch Variationen versucht, die eine Reihe von Fehlern erzeugen, einschließlich
%Vor%(zusätzlich zum Abschlachten des jsonHash, dh:
%Vor%Sie müssen jedes Argument in ein separates Element einer Sequenz aufteilen.
Statt dessen:
%Vor%Sie müssen dies schreiben:
%Vor% Es setzt jedes Element einer Sequenz als Argument in eine Befehlszeile. So sieht "-H 'Content-Type...
wie ein einzelnes Argument für curl
aus, während es 2 sein sollte.
Hier ist ein einfacher Test:
%Vor%Die meisten anderen Antworten sind ein bisschen fade, benutze den folgenden Trick, um Bash dazu zu bringen, die gesamte Kostenstellenbehandlung usw. für dich zu erledigen.
%Vor%Zum einfacheren googlen: bash execute process sys.process pipe string scala
Als String
pimp-Methode (einfaches Kopieren einfügen)