首页 文章

JSoup POST身份验证

提问于
浏览
2

我正在尝试使用基本用户名和密码身份验证连接到站点,保留cookie并从需要登录页面上提供的cookie的站点解析数据 . 当从本地Apache Web服务器使用网站副本时,解析工作非常完美 . 这是认证给我带来麻烦 . 我正在使用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

The whole code is available here

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;
    

相关问题