curl --request POST --url https://ship.amazon.in/swaapi/v2/some_id/shipments --header 'cache-control: no-cache' --header 'content-type: application/json' --header 'x-swa-token: Atc|MQEBIKSFsFpAwAZc6hHjeAAPfqdgFxhfSD5vIGW34BJG4nUaHayUtfxBkj_ssIs_46_NhW8QvCbpNha1wgZFBYmrfhCzocI4S7bs5XKi6FUE14wI_aHeVVGAItVkAOlkSJ7C29SXh2iIdcfDWrUv6lRwqY8DIH2BCLkr2N0XNcw8Ecxz-yrM5CeDr5bbYFN06TMRKH8KSumL625kOWfhoTClHuVosne-55ucG9BSOL62EoqMUsHeqKGkmR6G8L2XQRkL4yipUOqGtlT1OiOppf6o8svFJVnuJj9eOLbKGl4HdKVpoA' --data'{"transaction":{"transactionIdentifier":"1234"},"shipmentRequest":{"destination":{"address":{"mailingAddress":{"countryCode":"IN","postalCode":"110034","city":"Surat","addressLine1":"Marutidham","attentionName":"MeghaRajpara"}}},"containers":[{"value":{"value":100,"unit":"INR"},"valueAddedServiceProperties":{"collectOnDeliveryProperties":{"containerCODAmount":{"unit":"INR","value":450},"itemLevelCODAmounts":[{"itemId":"ITEM-1","amount":{"unit":"INR","value":2300}}]}},"identifiers":{"clientRefId":"43f65667-921b-4822-a346-d4c8ac886789","containerReferenceId":"7df1c643-be34-45b7-aac4-04faaad7dc3f"},"physicalAttributes":{"height":{"unit":"CM","value":10},"length":{"unit":"CM","value":10},"width":{"unit":"CM","value":5},"weight":{"unit":"G","value":50}},"itemInfo":[{"unitPrice":{"value":100,"unit":"INR"}}]}],"expectedServiceOffering":{"expectedPromise":{"receiveWindow":{"dateTimeRange":{"start":"2017-04-23T05:05:24.094Z"}}}},"clientReferenceId":"a1a924a3-7cbe-44b1-9a91-f09c1879011f","origin":{"address":{"mailingAddress":{"countryCode":"IN","postalCode":"395006","city":"Surat","addressLine1":"Marutidham","attentionName":"MeghaRajpara"}}},"shippingPurpose":"SALE"}}'
Run Code Online (Sandbox Code Playgroud)
上面的命令给了我以下错误:
输入线太长。
我该如何解决这个问题?
问题不是行太长,因为你的命令只有1673个字符,输入的命令限制是8191个字符cmd.exe
在运行 Microsoft Windows XP 或更高版本的计算机上,您可以在命令提示符下使用的字符串的最大长度为 8191 个字符。在运行 Microsoft Windows 2000 或 Windows NT 4.0 的计算机上,您可以在命令提示符下使用的字符串的最大长度为 2047 个字符。
https://support.microsoft.com/en-us/help/830473/command-prompt-cmd.-exe-command-line-string-limitation
现在看看你的命令
curl ... --header 'cache-control: no-cache' --header 'content-type: application/json'
--header 'x-swa-token: Atc|MQEBIKSFsFpAwAZc6hHjeAAPfqdgFxhfSD5vIGW34BJG4nUaHayUtfxBkj
_ssIs_46_NhW8QvCbpNha1wgZFBYmrfhCzocI4S7bs5XKi6FUE14wI
_aHeVVGAItVkAOlkSJ7C29SXh2iIdcfDWrUv6lRwqY8DIH2BCLkr2N0XNcw8Ecxz
-yrM5CeDr5bbYFN06TMRKH8KSumL625kOWfhoTClHuVosne-55ucG9BSOL62EoqMU
sHeqKGkmR6G8L2XQRkL4yipUOqGtlT1OiOppf6o8svFJVnuJj9eOLbKGl4HdKVpoA...'
Run Code Online (Sandbox Code Playgroud)
单引号'不是 Windows 中的引用符号,因此与人们可能期望的不同,'cache-control: no-cache'它将作为2 个单独的参数传递:'cache-control:和no-cache'
其结果是,在'x-swa-token: Atc|MQEBIKSFsFpAwAZc6hHjeAAPfqd...该'x-swa-token: Atc部分将被认为是最后的2个参数的第一个命令,其的输出将被管道输送到一个称为命令MQEBIKSFsFpAwAZc6hHjeAAPfqd...这可能不存在
您需要将单引号更改为双引号。但是,当您在字符串中使用嵌套双引号时,这样做会很痛苦
尽管如此,还是有各种解决方案。在 PowerShell'中可用于引用字符串,因此您可以完全避免过时的 cmd.exe 并按原样使用 PowerShell 和上述命令。较新的 Windows 10 也弃用了 cmd.exe 并默认使用 PowerShell。
无论如何,在 PowerShell 中已经存在,net.webclient.DownloadString因此您可以直接使用它,从而无需curl
由于构建 17063 以后curl也内置在 Windows 10(存档)中,您可以直接使用它
| 归档时间: |
|
| 查看次数: |
12347 次 |
| 最近记录: |