格式化 curl 命令
Formatting curl command
在WindowsGitBash中,这个curl命令有效:
curl -v 'https://developer.api.autodesk.com/authentication/v1/authenticate' \
-X 'POST' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'client_id=6BfkncD9ypGMiHkjrfka5ydqrG4GLx1z&client_secret=EC5i7QG61Qg8jDmZ&grant_type=client_credentials&scope=data:read'
但是当我尝试格式化-d 中的内容时,它不起作用:
curl -v 'https://developer.api.autodesk.com/authentication/v1/authenticate' \
-X 'POST' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'client_id=6BfkncD9ypGMiHkjrfka5ydqrG4GLx1z&
client_secret=EC5i7QG61Qg8jDmZ&
grant_type=client_credentials&
scope=data:read
'
我可以格式化它并且它有效吗?
-d
/--data
/--data-ascii
option of curl sends a data which is expected to be in one line in case of URL paraleters (as opposed to JSON, as seen for instance here,其中数据可以在多行)。
这意味着您需要先在变量中构建字符串,然后在 curl 中使用该变量。
vonc@vclp MINGW64 /c/test
$ data=$(printf '%s' '
client_id=6BfkncD9ypGMiHkjrfka5ydqrG4GLx1z&
client_secret=EC5i7QG61Qg8jDmZ&
grant_type=client_credentials&
scope=data:read
' | sed ':a; N; $!ba; s/\n\s*//g')
curl -v 'https://developer.api.autodesk.com/authentication/v1/authenticate' \
-X 'POST' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d "${data}"
所以在这种情况下有两个步骤。
在WindowsGitBash中,这个curl命令有效:
curl -v 'https://developer.api.autodesk.com/authentication/v1/authenticate' \
-X 'POST' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'client_id=6BfkncD9ypGMiHkjrfka5ydqrG4GLx1z&client_secret=EC5i7QG61Qg8jDmZ&grant_type=client_credentials&scope=data:read'
但是当我尝试格式化-d 中的内容时,它不起作用:
curl -v 'https://developer.api.autodesk.com/authentication/v1/authenticate' \
-X 'POST' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'client_id=6BfkncD9ypGMiHkjrfka5ydqrG4GLx1z&
client_secret=EC5i7QG61Qg8jDmZ&
grant_type=client_credentials&
scope=data:read
'
我可以格式化它并且它有效吗?
-d
/--data
/--data-ascii
option of curl sends a data which is expected to be in one line in case of URL paraleters (as opposed to JSON, as seen for instance here,其中数据可以在多行)。
这意味着您需要先在变量中构建字符串,然后在 curl 中使用该变量。
vonc@vclp MINGW64 /c/test
$ data=$(printf '%s' '
client_id=6BfkncD9ypGMiHkjrfka5ydqrG4GLx1z&
client_secret=EC5i7QG61Qg8jDmZ&
grant_type=client_credentials&
scope=data:read
' | sed ':a; N; $!ba; s/\n\s*//g')
curl -v 'https://developer.api.autodesk.com/authentication/v1/authenticate' \
-X 'POST' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d "${data}"
所以在这种情况下有两个步骤。