我正在努力將 cookie JSON 檔案附加到 bash 中的 curl 請求。
我知道它可以用 cookie.txt 來完成,但因為我有以下模式:
{"provisioning": "61d83f29bda251.85229990"}
卷曲請求:
curl -k -v -b cookie.json -F name=csr -F filedata=@${CSRFILE} https://prov.is.byl.com/cert_signer.php >${CRTFILE}
是否可以不必以這種方式發送它?:
curl -k -v -b 'provisioning=61d83f29bda251.85229990' -F name=csr -F filedata=@${CSRFILE} https://prov.is.byl.com/cert_signer.php >${CRTFILE}
uj5u.com熱心網友回復:
您可以將您的 JSON cookie 檔案轉換為預期的正確字串格式,curl如下所示:
curl -k -v \
-b "$(jq -r '[to_entries[]|([.key,.value|@uri]|join("="))]|join(";")' cookie.json)" \
-F name=csr -F "filedata=@$CSRFILE" \
https://prov.is.byl.com/cert_signer.php >"$CRTFILE"
該jq命令轉換cookie.json為選項name=value;name2=value2;...;預期格式的 cookie 字串curl -b:
jq -r '[to_entries[]|([.key,.value|@uri]|join("="))]|join(";")' cookie.json
這是jq腳本本身:
# start populating an array
[
# transform input object cookie.json
# members and value into array entries
to_entries[] | (
# Create an array for each entry
[
# with object member key to become cookie name
.key,
# and value encoded as uri format in case it contains
# characters not allowed in an HTTP header (like CR, LF, TAB, SPACE, ...)
.value | @uri
] | join("=") # join this array entries with an equal sign
)
] | join(";") # join array entries of cookie_name=cookie_value with a semocolon
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/404879.html
標籤:
