使用Java脚本和c ++通过用户名和密码登录HTTP请求

时间:2011-03-07 05:02:17

标签: c++ http post login

我一直在使用C++开发一个应用程序,有些部分需要连接到http服务器,我设法发送 GET HEAD 请求并检索网页

目前,我正在尝试将 POST 请求表单发送到需要登录信息的网站,它类似于 GET 请求,但是,我不喜欢不知道如何写它。

让我们说:

POST /users/login HTTP/1.1
HOST: www.example.com
Content-Length: 50, 
username: ME
password: pass

然后接收身份验证以检索登录所需的页面,

如何编写 POST 请求??

该网站使用表单身份验证。我的意思是有一个框输入电子邮件地址和密码,然后点击提交。据我所知,它是用 JS 编写的。

感谢任何帮助或指示。

2 个答案:

答案 0 :(得分:5)

尝试将您的请求重写为:

POST /users/login HTTP/1.1
HOST: www.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 25

username=ME&password=pass

我认为'25'是正确的长度。

作为练习,您可以下载允许像WireShark一样进行调试的HTTP工具,然后登录到一般论坛,该论坛没有安全登录系统,例如通常用于phpbb论坛的系统。

答案 1 :(得分:0)

POST是GET,HEAD等http方法之一, 关于HTTP本身的基础知识很少。它是一个基于文本的协议(您可以使用像putty这样的telnet客户端连接到服务器的端口80,并手动输入整个请求)。

第一行包含方法(GET,HEAD,POST等),URL路径和您支持的HTTP协议版本。我建议使用HTTP1.0,因为你不会在同一个连接中发送多个请求。这很难实现。

下一组行称为标题,每行包含一个键(内容类型,内容长度,主机等),以及由':'分隔的值。

然后发送的是请求的正文。信息必须是urlencoded。仔细阅读http://www.w3schools.com/tags/ref_urlencode.asp

如果您已经知道如何执行GET,那么现在就出现问题,然后根据该假设进行POST,需要执行以下步骤。

  1. 请求将为“POST HTTP / 1.0”
  2. 发送至少这些标题
  3. 内容类型:application / x-www-form-urlencoded 内容长度:

    1. 当正文发送包含inputname1 = value1& inputname2 = valule2
    2. 的urlencoded文本时
    3. 现在您应该从服务器上获取信息。
    4. 希望这会有所帮助。如果您想了解更多信息,请阅读http://www.w3.org/Protocols/HTTP/1.0/draft-ietf-http-spec.html

相关问题