我正在尝试使用文件中写入的一些 HTTP 请求来测试网络服务器。
GET / HTTP/1.1\r\n\r\n
现在我正在将该文件提供给netcat
如下内容:
cat files | nc localhost 80
但是,\r\n
文件中的字符直接传输到 Web 服务器(导致出现 4 个字符,即 '\'、'r'、'\'、'n')。我该如何提供该文件以便正确转义字符?
答案1
\r\n
是 printf 语句中用来生成 DOS/Windows 使用的 CarridgeReturn/NewLine 行尾的代码。
由于您使用的是 cat,因此您使用的是某些仅用作\n
行尾的 unix 变体。但您不必让该字符出现在文件中。只需尝试删除这些值(在行尾留下真正的换行符)。
现在的示例测试文件 =
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
$
我希望这有帮助。