我想为我的同学创建一个应用程序(C ++)。
通常他们必须去我们学校的网站并进入登录网站。 在那里,他们输入用户名和密码,登录并搜索自己的班级。
我希望我的应用程序向他们询问课程,用户名和密码,将其发送到时间表网站,下载网址并打印时间表。
我只编写C ++编程,因此除了"向网站发送用户名和密码之外,我不会遇到任何问题。步。我知道HTML基础知识,所以我认为我必须搜索网站使用的变量名称,并以某种方式将它们与url一起发送?我尝试了一些东西,但我不明白整个过程是如何运作的。
<label id="username-lbl" for="username" class="required" aria-invalid="false">
"Benutzername"
<span class="star"> *</span></label>
<input type="text" name="username" id="username" value class="validate-username required" size="25" required aria-required="true" autofocus>
这是用户名字段的HTML。我必须写像
...URL....\index.html&username="theusername"
因为ID是&#34;用户名&#34; ?
我试过这个并没有用。我在互联网上搜索了很多,但我找不到答案。
答案 0 :(得分:3)
在继续之前,请检查<form>
元素method
。提交数据的方式是发送更改。
如果method
为GET
(或缺失),则提交的数据确实会附加到网址中。它使用action
与URL的其余部分(由?
属性指定)分开,名称 - 值对由&
分隔。您还需要对值进行正确的URL编码。
如果method
为POST
,则会在请求正文中发送数据。格式取决于enctype
。
请注意,也有可能使用XHR(也称为Ajax aka XMLHttpRequest)实际发送数据。
了解事物运作方式的最简单方法是打开您喜欢的浏览器的开发工具的“网络”标签。它会告诉您它是常规页面还是XHR,POST或GET等。
请注意,在许多情况下,服务器会设置Cookie以保持状态,因此您必须在您这边做同样的事情。
答案 1 :(得分:0)
因此,您的C ++程序应该收集所需的params并生成有效的HTTP POST请求。
首先,您应该检查POST请求的样子。其中一种可能的方法是使用浏览器开发人员工具,网络选项卡:
检查所有标题和正文。了解这些内容是如何工作的,并尝试使用某些HTTP库从您的C ++程序发出硬编码请求。
它可能会对您的用户进行身份验证并返回您可能用于验证程序请求的令牌或其他值,然后其他请求包含这些标头,以便您可以充当用户并获取用户内容。
这也取决于身份验证的实现,一些策略允许您这样做,而一些策略受到保护。但我成功地将这项技术用于生产稳定应用。我可以发送各种cURL请求,并从我的终端访问作为登录用户的页面,而无需登录或使用浏览器。 (我没有登录,因为我只是&#34;偷了&#34;已经登录(并且可能记住)用户的会话)。在您的情况下,您需要首先登录以获取这些标头(也使用您的C ++ HTTP库),然后为将来获取数据的请求注入新标头。