Відповіді:
Ви можете використовувати -o
комутатор та null
псевдофайл:
curl -s -o /dev/null -v http://google.com
curl -s -o nul -v http://google.com
-s -o nul
але на моїй машині Windows curl -s -o nul -v http://{internal-host}/{internal-uri}
виводить весь html-сторінку сторінки - я намагався, curl -s -o nul -v http://google.com
і вона придушує вихід, як очікувалося, тому я не розумію, чому це не працює для мого внутрішнього сайту
-o
вказує лише один вихід URL-адрес: якщо у вас є кілька URL-адрес, він буде відкинути лише перший :(
Ось спосіб придушити всі результати витоку та заголовки, з можливістю все-таки відображати помилки, якщо вони виникають. Корисно для завдань на крон або автоматизованого тестування.
Щоб придушити весь вихід:
curl --silent --output /dev/null http://example.com
Щоб придушити вихід, але все ж показувати помилки, якщо вони трапляються:
curl --silent --output /dev/null --show-error --fail http://example.com
Щоб придушити весь вихід:
curl --silent --output nul http://example.com
Щоб придушити вихід, але все ж показувати помилки, якщо вони трапляються:
curl --silent --output nul --show-error --fail http://example.com
--silent
пригнічує статистику завантаження (але все одно показуватиме вихід HTML),
--output /dev/null
приховує успішний вихід,
--show-error
показує помилки, навіть коли silent
режим увімкнено
--fail
, помилка, якщо відповідь HTTP є кодом помилки (404, 500 тощо) замість просто DNS / Помилки TCP.
ОНОВЛЕННЯ: Я розумію, що оригінальний автор хотів перевірити заголовки та код відповіді запиту, а не замовчувати все . Детальну інформацію про те, як це зробити, див. У відповіді самоеля .
curl -vo/dev/null
/ curl -voNUL
… і я не знаю, чи є портативний варіант цього, хрм… ;-).
curl -Ssfo /dev/null url
. Але будьте приємні майбутнім обслуговувачам.
Коли ви хочете показати заголовки, але приховати тіло відповіді, ви хочете використовувати:
curl -sIXGET http://somedomain.com/your/url
Я використовував curl -I http://somedomain.com/your/url
для показу лише заголовки відповідей. Проблема в цьому полягає в тому, що він робить запит, використовуючи HEAD
метод, який не є хорошим, коли ви хочете протестувати виклик API, який відповідає лише на GET
запит. Це те -X GET
, для чого це, воно змінює запит на a GET
.
Отже, підсумовуючи:
-s
приховує смуги прогресу від виводу (особливо корисно при переході до іншої програми)
-I
показує заголовки (але робить HEAD
запит)
-XGET
перетворює запит назад у GET
запит
див .: http://www.woolie.co.uk/article/curl-full-get-request-dropping-body/
curl -i
робить точно те саме.
-i
включає HTTP-заголовок у висновку, а також тіло. Спробуй це. curl -i http://google.com
не те саме, щоcurl -IXGET http://google.com
curl -I url
достатньо і має той же ефект. Мені просто потрібно було перевірити, чи реагує URL-адреса. Це питання теж стосувалося придушення організму, що HEAD
добре.