Параметры URL командной строки CURL

Я пытаюсь отправитьDELETE запрос с параметром URL с использованием CURL. Я делаю:

curl -H application/x-www-form-urlencoded -X DELETE http://localhost:5000/locations` -d 'id=3'

Тем не менее, сервер не видит параметр id = 3. Я пытался использовать приложение с графическим интерфейсом, и когда я передаю URL-адрес как:http://localhost:5000/locations?id=3, оно работает. Я действительно предпочел бы использовать CURL, а не это приложение с графическим интерфейсом. Может кто-нибудь, пожалуйста, укажите, что яя делаю неправильно?

Ответы на вопрос(2)

Решение Вопроса

применение / х-WWW-форм-urlencoded» заголовок, почему? Попробуйте это:

curl -X DELETE 'http://localhost:5000/locations?id=3'

или же

curl -X GET 'http://localhost:5000/locations?id=3'
 darksky14 нояб. 2012 г., 02:23
Это сработало. Я только что понял, что URL должен быть между кавычками, чтобы принимать параметры. Этот тип MIME предназначен для URL с параметрами, и именно это использует приложение с графическим интерфейсом. Кроме того, я не хочу делатьGET, я бы хотелDELETE и неGET и я пытаюсь следовать надлежащим стандартам дизайна REST, поэтому я использую DELETE, а не GET при удалении.
 Jeff_Alieffson07 дек. 2014 г., 04:52
В моем случае это работает только с двойной кавычкой, с одинарной кавычкой в говорит curl: (1) Protocol 'http не поддерживается или отключен в libcurl, но с "" цитата работает просто отлично.

Фелипсмартинс это правильно.

Стоит отметить, что это потому, что вы не можете использовать опцию -d / - data, если это не POST-запрос. Но это все еще возможно, если вы используете опцию -G.

Что означает, что вы можете сделать это:

curl -X DELETE -G 'http://localhost:5000/locations' -d 'id=3'

Здесь это немного глупо, но когда вы находитесь в командной строке и у вас много параметров, это намного аккуратнее.

Я говорю это потому, что команды cURL, как правило, довольно длинные, поэтому стоит делать это более чем на одной строке, избегая разрывов строк.

curl -X DELETE -G \
'http://localhost:5000/locations' \
-d id=3 \
-d name=Mario \
-d surname=Bros

Это, очевидно, намного удобнее, если вы используете zsh. Я имею в виду, когда вам нужно отредактировать предыдущую команду, потому что zsh позволяет вам переходить строка за строкой. (просто говорю)

Надеюсь, поможет.

 huggie19 февр. 2014 г., 15:36
Вы подразумеваете, что -X DELETE -G действительно POST-запрос?
 Nathan Wallace13 сент. 2013 г., 17:31
Спасатель жизни! Спасибо чувак! У меня есть скрипт, в котором я хочу использовать --data-urlencode в GET. Это сделало так, чтобы я неМне нужно вручную кодировать URL-адреса моих параметров. Спасибо!

Ваш ответ на вопрос