2010-05-21 3 views
25

Есть ли способ использовать завиток для отправки запроса POST без отправки каких-либо данных?POST с curl без отправки данных

Мы обычно отправлять как:

curl --data @C:\mydata.txt http://1.2.3.4/myapi 

Если опустить --data вы делаете GET. Как вы можете опустить его и по-прежнему делать POST?

ответ

43

Случайным нашел solution на другую должность:

curl -X POST http://example.com

+0

Nice. Я тоже в этой ситуации, но это немного странно. Мне интересно, было бы более целесообразно изменить вызов GET. Я знаю, что это уже несколько лет, но какие-то мысли по этому поводу? –

+7

В моем случае мне пришлось использовать --data ", иначе я бы получил 411: curl -X POST --data" "url – unify

+2

@KyleClegg. Вызов должен быть POST, если он предназначен для изменения чего-либо и может дать другой результат каждый раз, когда он называется. Не отправлять данные не означает, что это ничего не изменит. Поэтому в этом случае было бы нецелесообразно менять вызов в GET. –

2

Это немного взломанный, но вы всегда можете предоставить пустой файл -data.

Поочередно

cat /dev/null | curl --data @- http://... 
+0

Право. Также можно использовать '--data xxx'. –

0

В случае Libcurl с PHP:

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
1

Другой вариант отправки запроса с пустое тело, например:

curl http://example.com -d {} 
Смежные вопросы