2017-05-11 29 views
0

我正在嘗試使用ansible的uri模塊來模仿curl命令,我需要在上傳XML文件時傳遞選項。Curl -F選項和URI模塊

我curl命令已經經由-F, --form <name=content>通過選擇號碼,我一直沒能找到有關Ansible's uri docs

任何想法等的選項?

回答

0

這裏假設非二進制形式的內容,它看起來像你可以在這裏指定兩個頭:

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

那麼這將意味着你給它一個完整的原始網址包含所有你的表單參數的編碼體。

  • 沒有JSONparam=value

    的一般格式是:

    PARAM = 網址編碼值換PARAM & param2的= 網址編碼-value-for-param2

  • 使用JSON

    隨着Content-Type頭設置爲application/json,您可以直接發送JSON是這樣的:

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

    如果發送JSON作爲一種形式的一個子集,它會是這樣的:

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

    但是對此的支持各不相同。要做到這一點,正確的方法是使用設置Content-type: application/x-www-form-urlencoded發送整個事情:

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

從Ansible(格式化修改):

body_format(2.0加) (no | raw | json)
正文的序列化格式 。設置爲json時,根據需要對body參數進行編碼,並自動設置Content-Type標頭。從2.3 開始,當通過標頭選項設置爲json 時,可以覆蓋Content-Type標頭。