我需要将原始数据传输到服务器,该服务器不是http服务器。即它不理解 POST、PUT 或类似命令。它只是侦听等待传入数据的端口,处理它们并将数据发回。顺便说一句:服务器正在监听非标准端口,即 3500。
\n\n无论我在 cURL 中尝试什么选项,我都无法正确传输数据。在发送实际数据之前,cURL 始终至少发送“POST”或“PUT”。然后服务器回复我“\xe2\x80\xa6invalid data\xe2\x80\xa6”。
\n\n我尝试过的选项:--data-raw、--data-binary、--upload-file、--raw,仅举几例。
\n\n在 cURL 发送数据之前是否有机会抑制“POST”或“PUT”的传输?
\n您也许可以使用telnetcurl 的协议选项来完成您想要的任务。
将要传输的原始数据放入文件(或来自标准输入的管道)中,并按照以下方式执行curl:
cat commands.txt | curl telnet://server:3500
Run Code Online (Sandbox Code Playgroud)
使用curl 的telnet 协议处理程序,它将连接并传输它接收到的数据,然后读取响应。
注意:如果服务器在发送数据响应您的命令后没有终止连接,curl 可能会保持连接打开状态以等待更多数据。如果是这种情况,您可能想尝试nc(netcat),或者编写一个可以进行双向通信的小而简单的程序。