我正在嘗試使用 curl 在 powershell 中發出發布請求。但我似乎很不幸收到此錯誤。
我曾嘗試洗掉這里和那里的空格,并在谷歌上搜索問題,但沒有找到解決方案。
curl.exe -X 'POST' -H @{'Content-Type'='application/json'; 'accept'='application/json'} -d \"{\"name\":\"test3\", \"auto_init\":true, \"default_branch\": \"master\", \"description\": \"My Test\", \"gitignores\": \"Vim\", \"issue_labels\":\"Default\", \"license\": \"DOC\", \"name\":\"test2\", \"private\":false, \"readme\":\"Default\",\"template\":false,\"trust_model\":\"default\"}\" http://localhost:3000/api/v1/user/repos?access_token=c11ceb97fa594a7e6c4b5519e4327908be3274b9
uj5u.com熱心網友回復:
回復
-H:curl.exe是一個外部程式,這意味著您不能有意義地將 PowerShell哈希表(@{ ... }) 作為引數傳遞,因為它將(無用地)作為文字 string 傳遞System.Collections.Hashtable。相反,將字串作為多個
-H選項傳遞,每個選項都在表單中'<name>: <value>'
回復
-d:PowerShell 的轉義字符是
`(所謂的反引號),而不是\.由于您的引數將逐字傳遞(不包含要插入的變數參考),因此請使用逐字(單引號)字串 (
'...')。然而:PowerShell 7.2 的可悲現實是,在傳遞給外部程式的引數中需要額外的手動
\轉義嵌入"字符層。這可能會在未來版本中得到修復,這可能需要選擇加入。有關詳細資訊,請參閱此鏈接副本的答案。
把它們放在一起:
curl.exe -H 'Content-Type: application/json' -H 'accept: application/json' -d '{\"name\":\"test3\", \"auto_init\":true, \"default_branch\": \"master\", \"description\": \"My Test\", \"gitignores\": \"Vim\", \"issue_labels\":\"Default\", \"license\": \"DOC\", \"name\":\"test2\", \"private\":false, \"readme\":\"Default\",\"template\":false,\"trust_model\":\"default\"}' 'http://localhost:3000/api/v1/user/repos?access_token=c11ceb97fa594a7e6c4b5519e4327908be3274b9'
注意:我省略了-X 'POST',因為正如Daniel Stenberg指出的那樣,當您使用該選項時,隱含了 POST 請求-d。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/392510.html
