2017-05-11 6 views
0

Ich versuche, Ansible-URI-Modul verwenden, um Curl-Befehl nachzuahmen, muss ich Optionen beim Hochladen einer XML-Datei übergeben.Curl -F-Option und ansible URI-Modul

Mein curl Befehl über -F, --form <name=content> bestanden Anzahl von Optionen habe ich nicht in der Lage gewesen, auf Ansible's uri docs

Irgendwelche Ideen eine gleichwertige Option zu finden?

Antwort

0

Unter der Annahme nicht-binäre Form Inhalt hier sieht es aus wie Sie hier zwei Header angeben:

  • "Content-type: application/x-www-form-urlencoded"
  • body_format: raw

das dann bedeuten würden Sie ihm eine vollständige rohe url geben -kodierten Körper mit all Ihren Form-Parametern enthalten.

  • Ohne JSON (param=value)

    Das allgemeine Format ist:

    param = URL-encoded-Wert-für-param & param2 = URL-kodierten -Wert-für-Param2 usw.

  • Mit JSON

    Mit dem Content-Type Header auf application/json, könnten Sie direkt JSON wie folgt senden:

    {"param1":"value","param2":"value","param3":6}

    Wenn JSON als Teilmenge eines Formulars zu senden, es wäre wie folgt:

    records='{"param1":"value","param2":"value","param3":6}'&action=submit

    Aber die Unterstützung für diese variiert. Der richtige Weg, dies zu tun, wäre die Verwendung einstellen Content-type: application/x-www-form-urlencoded das Ganze senden:

    records=%7B%22param1%22%3A%22value%22%2C%22param2%22%3A%22value%22%2C%22param3%22%3A6%7D&action=submit

Von ansible (modifizierte Formatierung):

body_format (hinzugefügt in 2.0) (no | row | json)
Das Serialisierungsformat des Körpers. Wenn der Wert auf json festgelegt ist, wird das body-Argument bei Bedarf codiert und der Content-Type-Header automatisch entsprechend festgelegt. Ab 2.3 ist es möglich, den Header Content-Type zu überschreiben, wenn er über die Header-Option auf json eingestellt ist.