Відповіді:
За замовчуванням ви використовуєте curl, не чітко вказуючи, який метод запиту використовувати. Якщо ви просто перейдете за URL-адресою HTTP, curl http://example.comвона використовуватиме GET. Якщо ви використовуєте -dабо -Fcurl буде використовувати POST, -Iце спричинить голову та -Tзробить її PUT.
Якщо з будь-якої причини ви не задоволені тими варіантами за замовчуванням, які роблять для вас, ви можете замінити ці методи запиту, вказавши -X [WHATEVER]. Таким чином, ви можете, наприклад, відправити DELETE, виконавши curl -X DELETE [URL].
Таким чином, робити це безглуздо, curl -X GET [URL]оскільки GET був би використаний у будь-якому випадку. У цьому ж сенсі це робити безглуздо, curl -X POST -d data [URL]...але ви можете зробити веселий і дещо рідкісний запит, який надсилає тіло запиту в GET-запиті з чимось подібним curl -X GET -d data [URL].
curl -GET(за допомогою одного тире) для цієї мети просто неправильно. Це еквівалентно вказавши -G, -Eі -Tваріанти , і що буде робити що - то зовсім інше.
Існує також варіант завитка, покликаний --getне плутати питання ні з одним. Це довга форма -G, яка використовується для перетворення даних, визначених -dу запит GET, замість POST.
(Згодом я використала тут свою власну відповідь, щоб заповнити FAQ щодо завитків, щоб прикрити це .)
Сучасні версії curl інформують користувачів про це непотрібне та потенційно шкідливе використання -X, коли дозволений багатослівний режим ( -v) - щоб повідомити користувачів. Далі пояснено та мотивовано у цій публікації блогу .
Ви можете попросити curl перетворити набір -dпараметрів і замість того, щоб надсилати їх у тіло запиту за допомогою POST, розміщувати їх у кінці рядка запиту URL-адреси та видавати GET, використовуючи `-G. Подобається це:
curl -d name=daniel -d grumpy=yes -G https://example.com/
Використання -X [WHATEVER]лише змінює рядок методу запиту, який використовується у запиті HTTP. Це легше зрозуміти з двома прикладами - один із -X [WHATEVER]і один без - та пов'язані заголовки HTTP запиту для кожного:
# curl -XPANTS -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.224.86.126) port 80 (#0)
> PANTS / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*
# curl -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.33.50.167) port 80 (#0)
> GET / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*