java - 需要帮助登录网站和检索信息

标签 java httpurlconnection

我已经阅读了许多类似的问题,但我仍然坚持登录我的学校成绩簿 (https://parents.mtsd.k12.nj.us/genesis/parents) 来检索数据。我的网络类(class)如下所示:

public class WebLogin {

    public String login(String username, String password, String url) throws IOException {
        URL address = new URL(url);

        HttpURLConnection connection = (HttpURLConnection) address.openConnection();
        connection.setDoOutput(true);
        connection.setRequestProperty("j_username", username);
        connection.setRequestProperty("j_password", password);
        connection.setRequestProperty("__submit1__","Login");

        InputStream response = connection.getInputStream();
        Document document = Jsoup.parse(response, null, "");

        //don't know what to do here!

        return null;
    }
 }

我不确定如何处理 InputStream 或者我是否要正确登录,我再次浏览并阅读了一些在线资源以试图理解这个概念,但我仍然感到困惑。任何帮助表示赞赏!

更新:所以现在我了解了基本过程,我知道我必须做什么。使用 Jsoup 处理连接时,我知道您可以执行以下操作:
    Connection.Response res = Jsoup.connect("---website---")
                .data("j_username", username, "j_password", password)
                .followRedirects(true)
                .method(Method.POST)
                .execute();

但是,对于如何实际发送数据(例如使用 HttpURLConnection 将用户的用户名/密码发送到网站,以及如何实际存储获取的 cookie...我对其他一切都很好

最佳答案

一种方法是使用 Apache Http Client .
也许像下面这样的东西可以工作。

Request.Post("https://parents.mtsd.k12.nj.us/genesis/j_security_check")
    .bodyForm(
        Form.form()
        .add("j_username",  username)
        .add("j_password",  password).build()
    )
.execute().returnContent();

您将弄清楚登录所需的信息(URL、请求方法、名称和参数值等)。

这是我为 logging into Gmail 找到的示例.

关于java - 需要帮助登录网站和检索信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31629938/

相关文章:

java - httpUrlconnection 向任何调用返回 500 错误代码

java - 为什么出现 ConnectException : Connection refused: connect is thrown from HttpURLConnection. getResponseCode()?

Java - 带有空主体的 HttpURLConnection PUT 请求

Java GUI BorderLayout 应用程序 4 个按钮 左、右、上、下每个移动位置

php - 通过 HttpURLConnection 将参数和图像上传到 PHP 服务器 (Android)

java - 使用页面工厂在 POM 中获取 java.lang.NullPointerException

java - 当我分配 char (从文字或其他方式)时, "java internal encoding is UTF16"在这里意味着什么? char是以什么编码存储的?

java - HttpURLConnection 是否支持开箱即用的压缩/解压缩?

java - 为什么我已经四舍五入了,却得到了一个不终止的十进制扩展?

java - 适合内存的顺序数据的 QuickSort 和 MergeSort 性能与磁盘上访问顺序数据的速度比较慢