Назад | Перейти на главную страницу

служебная программа для выдачи сырых HTTP-команд?

Тупой вопрос: есть ли пакетный режим утилита (например, определенные параметры для curl или wget), которая может позволить мне выдавать необработанные HTTP-команды и либо выводить необработанные результаты, либо перенаправлять / перенаправлять их, как я считаю нужным?

Я знаю, что telnet теоретически работает, но я использую Windows XP, и Microsoft telnet и PuTTY кажутся интерактивными и, похоже, все портят.


редактировать: (пояснение) Я использовал curl раньше, поэтому я знаком с этой идеей, а также с тем, как отправлять параметры через GET / POST, только не о том, как явно контролировать заголовки и как сохранить заголовки в выводе ... Я вижу два возможных метода, которые были бы мне полезны:

  1. Необработанный ввод-вывод HTTP - Я имел в виду буквально как telnet, но в пакетном режиме (не открывать новое окно и не менять настройки терминала):

    GET http://someserver/someresource/blah.html
    HTTP/1.1 301 Moved Permanently
    Date: Wed, 14 Oct 2009 21:23:40 GMT
      ...
    
  2. "легкий" ввод, необработанный вывод HTTP - используя curl в обычных методах, но имея возможность видеть необработанный вывод дословно:

    > curl --some-option --another-option http://someserver/someresource/blah.html
    HTTP/1.1 301 Moved Permanently
    Date: Wed, 14 Oct 2009 21:23:40 GMT
      ...
    

Curl или wget - хорошие варианты. Но если вы действительно хотите иметь что-то эквивалентное telnet, вам, вероятно, следует использовать netcat (win32) вместо использования telnet. Netcat разработан для необработанного ввода-вывода telnet.

Да, и curl, и wget могут это сделать. Пожалуйста, дайте нам более подробную информацию о том, какие команды вы хотите выполнить.

Случайный пример:

wget --post-data="Some random data sent via POST" "http://example.com/cgi/something.php?arg=1&foo=bar" -q -O results.txt

Отправляет некоторые данные через POST, а также некоторые аргументы через GET на определенный URL. -q означает не сообщать мне о ходе выполнения, -O указывает, в какой файл выводить. Использовать -O - если вы хотите передать результаты по конвейеру вместо сохранения в файл.

HTTP-клиент для Mac OS X удобен, http://ditchnet.org/httpclient/

Для "легкого" ввода, необработанный вывод HTTP: curl -i --raw http://google.fr

С другой стороны, я думаю, что Telnet - ваш лучший шанс.