不使用浏览器发送 HTTP 数据包?
Posted
技术标签:
【中文标题】不使用浏览器发送 HTTP 数据包?【英文标题】:Send HTTP Packets without browser? 【发布时间】:2013-01-31 15:24:56 【问题描述】:我想我有两个问题:
我正在尝试在不使用 Web 浏览器的情况下向 Web 服务器发送 HTTP 请求。我已经阅读了使用 Telnet 执行此操作的最常用方法,但我想知道其他方法。
另外,我认为我的 telnet 有问题。我激活了 telnet 客户端,然后在命令窗口中输入 telnet,然后输入“open IP-address 80”,它会一直显示“connecting to IP-address ...”,但永远不会让我越过它。你们有人遇到过这个问题吗? 另外,我在 Wireshark 上注意到 TCP 握手正确发生。
请,谢谢!
【问题讨论】:
【参考方案1】:您是否指定了端口?端口 80 通常用于 HTTP 请求。
telnet www.some-site.com/some-page.html 80
连接后,您需要发出GET
请求。 (发送命令GET
)。
【讨论】:
是的,我确实指定了端口 80。如果我没有,它使用默认端口 23 并且连接失败。【参考方案2】:您可以使用sockets
或WebClient
(C#) 完成同样的事情:
默认方式为Telnet
:
您可以从 telnet 命令提示符执行以下操作:
o host port> (o www.website.com 80)
GET /index.htm HTTP/1.1
使用WebClient
(注意:这是一个 C# WebClient 对象):
var webClient = new WebClient();
webClient.Headers.Add("user-agent", "Agent");
Stream responseStream = webClient.OpenRead("http://www.google.com")
来自服务器的响应将存储在 responseStream
对象中。
【讨论】:
【参考方案3】:您还应该查看 curl 命令行实用程序:http://curl.haxx.se/ 基本上,它是一个很酷的小软件,可以发出 HTTP 请求(并且还支持其他协议)。另请查看 hurl:http://www.hurl.it/,这是 curl 的一种 Web 应用程序版本。
【讨论】:
curl 是理想的解决方案。以上是关于不使用浏览器发送 HTTP 数据包?的主要内容,如果未能解决你的问题,请参考以下文章