java - 在使用原始表单数据的网站上填写登录表单

标签 java asp.net http post form-data

我正在尝试使用 java 中的 HttpsURLConnection 登录网站 lectio.dk。 最初我以为这就像使用带有相应用户名和密码的 cookie 向网站发布请求一样简单,但它并不让我那么容易进入。 该网站使用 ASP.NET session ID,当从浏览器检索时,我可以使用它来访问该网站。

当我查看 Google Chrome 中的开发人员模式时,它似乎直接从文本字段(而不是通过 cookie)获取登录详细信息,据我所知,无法从 java 进行编辑。 我认为这是因为包含两个文本字段的数据的表单数据是我看到写入的登录详细信息的唯一地方。

如果有人能告诉我是否有一种方法可以以编程方式登录此网站并以登录用户的身份访问该网站,我会很高兴。

最佳答案

您可以使用基本身份验证加载页面。像这样:

    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    String userPassword = username + ":" + password;
    String userPasswordEncoded = Base64.getEncoder().encodeToString(userPassword.getBytes(StandardCharsets.UTF_8));
    connection.setRequestProperty("Authorization", "Basic " + userPasswordEncoded);
    connection.connect();
    ...

这需要成为您对 protected 内容执行的任何请求的一部分。想一想,如果您使用 HTTP 客户端库,您还可以通过启用 cookie 支持来建立一次验证流程。例如。 OkHttp是一个不错的库来做到这一点。另请参阅Android OkHttp with Basic Authentication .

关于java - 在使用原始表单数据的网站上填写登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58260946/

相关文章:

java - 如何使用oshi远程监控Linux服务器的性能状态?

asp.net - 如何将 ASP.NET Core 5 网站发布到 IIS?

javascript - 使用 javascript 打印时不出现 Ajax 评级控件

asp.net - IIS 7 上的条件 https 重定向

java - HttpURLConnection 握手和请求发送

javascript - HTTP 请求 JSON : Unexpected . 解析错误 - 如何消除它?

json - 从微服务返回大数据的最快机制

java - 构建只读的空列表的最佳方法?

javascript - 在 Javascript 中拆分 "@"之前的文本框文本值

java - 从 CSV 到 Eclipse 再到 MySql 的希伯来语编码都是垃圾