файл cat, содержащий экранированные символы в netcat


0

Я пытаюсь протестировать веб-сервер с некоторым HTTP-запросом, записанным в файле.

GET / HTTP/1.1\r\n\r\n

Прямо сейчас я передаю этот файл netcatтак:

cat files | nc localhost 80

Однако эти \r\nфайлы передаются непосредственно на веб-сервер (в результате получается 4 символа, то есть '\', 'r', '\', 'n'). Как я могу кормить этот файл так, чтобы символы были экранированы правильно?

Ответы:


1

\r\n являются кодами, используемыми в операторе printf для генерации окончаний строк CarridgeReturn / NewLine, используемых DOS / Windows.

Так как вы используете cat, вы используете какой-то вариант unix, который используется только \nкак конец строки. НО вам не нужно, чтобы этот символ появлялся в файле. Просто попробуйте удалить эти значения (оставив реальный перевод строки в конце строки).

Пример тестового файла сейчас =

GET / HTTP/1.1
  blah-blah

GET / HTTP/1.1
  blah2

ИЛИ, если вам действительно нужно интерпретировать \r\nзначения, встроенные в файл, вы можете интерпретировать файл с помощью утилиты printf, т.е.

$ cat printf_inputtest.txt
GET / HTTP/1.1\r\n\r\n
GET / HTTP/1.1\r\n\r\n
$ printf "$( < printf_inputtest.txt )"
GET / HTTP/1.1


GET / HTTP/1.1

$ 

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


@Usavich: пожалуйста, посмотрите мои последние изменения. Я считаю, что я решил вашу проблему именно так, как просили. Удачи.
Оболочка
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.