Відповіді:
За замовчуванням ви використовуєте curl, не чітко вказуючи, який метод запиту використовувати. Якщо ви просто перейдете за URL-адресою HTTP, curl http://example.com
вона використовуватиме GET. Якщо ви використовуєте -d
або -F
curl буде використовувати 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: */*