不使用浏览器发送 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】:

您可以使用socketsWebClient (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 数据包?的主要内容,如果未能解决你的问题,请参考以下文章

http

使用 httr R 包发送 POST 请求

HTTP网络协议包

使用现有的 TCP 连接发送数据包

我们可以抓到flex的HTTPservice的数据包吗

http协议简介