2

我正在尝试使用基本的用户名和密码身份验证连接到一个站点,保留 cookie 并解析来自需要登录页面上给出的 cookie 的站点的数据。当使用来自本地 Apache 网络服务器的网站副本时,解析工作完美。这是给我带来麻烦的身份验证。我使用 Eclipse 作为我的 IDE,并且我不断收到以下代码的错误:

    Response res = Jsoup
        .connect("site_with_login")
        .data("login", "MyUsername")
        .data("pass", "MyPassword")
        .method(Method.POST)
        .execute();

    //Keep logged in
    Map<String, String> cookies = res.cookies();

.method(Method.POST)问题所在,因为错误在POST. 这是运行解析时的输出:

    Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
POST cannot be resolved or is not a field

at parseHTML.main(parseHTML.java:26)

这很奇怪,因为 stackoverflow 上的很多帖子都提到了这种精确的身份验证方式。我已经导入了所有打包的文件,并且在我的库中有 jsoup-1.7.2.jar 文件。

有谁知道我该如何解决这个烦人的问题?

提前致谢。

编辑:我目前正在使用以下软件包:

    import org.jsoup.Connection.Method;
    import org.jsoup.Connection;
    import org.jsoup.Jsoup;
    import org.jsoup.helper.HttpConnection.Response;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;

我现在发布的整个代码块给出了以下错误:

    Type mismatch: cannot convert from Connection.Response to HttpConnection.Response

整个代码可在此处获得

4

1 回答 1

2

我认为您使用了错误的导入。

确保您使用:

.method(Connection.Method.POST)

确保您导入: org.jsoup.Connection.Method而不是java.lang.reflect.Method

另一个导入问题:

import org.jsoup.Connection.Response;

代替:

import org.jsoup.helper.HttpConnection.Response;
于 2013-04-10T08:36:07.177 回答