2010-04-14 31 views
7

cố gắng hiểu http và tiêu đề tôi đang chơi với telnet để gửi yêu cầu. để không gõ tất cả mọi thứ một lần nữa và một lần nữa và một lần nữa tôi nghĩ rằng tôi muốn viết một textfile nhỏ với tất cả các lệnh tôi cần.cách nạp một tập tin vào telnet

tập tin của tôi cũng đơn giản như sau:

GET /somefile.php HTTP/1.1 
Host: localhost 

i sau đó cố gắng để nuôi nó để telnet với io-chuyển hướng:

$ telnet localhost 80 < telnet.txt 

nhưng tất cả đầu ra tôi nhận được là

Trying ::1... 
Connected to localhost. 
Escape character is '^]'. 
Connection closed by foreign host. 

tôi đang làm gì sai?

+1

Xem xét lại câu hỏi này sau 7 năm, tôi nghĩ rằng vấn đề với các giải pháp được đề xuất với netcat là các vấn đề CRLF/LF với tệp. Giao thức HTTP yêu cầu sử dụng các thuật ngữ dòng CRLF và sẽ không chỉ hoạt động với LF. – knittl

Trả lời

5

telnet không phải là công cụ thích hợp cho công việc này. Hãy thử:

netcat localhost 80 < telnet.txt

btw, nếu bạn không có cài đặt công cụ này trên máy tính của bạn, bạn có thể lấy nó ở đây:

http://netcat.sourceforge.net/

+0

làm thế nào tôi có thể lấy lại đầu ra? tôi cần câu trả lời http/html – knittl

+0

Phản hồi sẽ chỉ hiển thị trên stdout của dòng lệnh. – chetan

+0

nó khi tôi nhập yêu cầu trên stdin, nhưng khi làm 'nc knittl

0

Tôi không biết liệu điều đó có thể thực hiện được với telnet hay không. Bạn đã xem số netcat chưa?

4

Vấn đề là bạn nạp tất cả đầu vào cho lệnh telnet ngay lập tức, mà không cần đợi đầu ra của nó. Ngay sau khi tất cả các tập tin đầu vào của bạn đã được cho ăn, nó sẽ tự động khiến telnet "treo", bởi vì luồng đầu vào đến hết (EOF). Telnet có thể vẫn ở trong mili giây đầu tiên hoặc micro giây thực sự chờ để thiết lập kết nối với máy chủ từ xa khi điều này xảy ra. Những gì bạn muốn làm là gửi lệnh đến telnet, sau đó chờ nó thực hiện công việc của nó, chờ đợi phản hồi của máy chủ, sau đó gửi lệnh tiếp theo, v.v. và chỉ treo ở cuối khi tất cả các lệnh bạn đã gửi thực sự được xử lý. Để thực hiện việc này, hãy sử dụng tập lệnh 'mong đợi' thay vì insta-cho ăn một tệp văn bản. 'Mong đợi' là công cụ thông thường để thực hiện công việc này.

Các vấn đề liên quan