Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jsoup connect参数_Java_Httpclient_Jsoup - Fatal编程技术网

Java jsoup connect参数

Java jsoup connect参数,java,httpclient,jsoup,Java,Httpclient,Jsoup,我通过传递会话id和url访问网页,输出是HTML响应。 我想使用jSoup来解析这个响应并获取标记元素。 我看到Jsoup中的示例使用字符串来建立连接。我该怎么做 伪代码: 我尝试了上面的方法,得到了这个异常 java.io.IOException: 401 error loading URL http://www.abc.com/index at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:

我通过传递会话id和url访问网页,输出是HTML响应。 我想使用jSoup来解析这个响应并获取标记元素。 我看到Jsoup中的示例使用字符串来建立连接。我该怎么做

伪代码:

我尝试了上面的方法,得到了这个异常

java.io.IOException: 401 error loading URL http://www.abc.com/index
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:387)
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:364)
    at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:143)
    at org.jsoup.helper.HttpConnection.get(HttpConnection.java:132)

基本上,
entity.getContent()
具有HTML响应,该响应必须作为字符串传递给connect方法。但它不起作用

它显示http错误401,这意味着

类似于403禁止,但特别适用于可能进行身份验证但失败或尚未提供身份验证的情况


因此,我认为您需要使用java代码登录网站,或者通过代码发送cookie来识别自己。

Apache Commons HttpClient和Jsoup不共享同一cookie存储。基本上,您需要传递与HttpClient通过Jsoup的
连接
检索回来的cookies相同的cookies。你可以在这里找到一些具体的例子:

或者,您也可以继续使用HttpClient来触发HTTP请求和维护Cookie,并通过
Jsoup()将其
HttpResponse
作为
String
提供

因此,这应该做到:

HttpResponse httpResponse = httpclient1.execute(httpget, httpContext);
String html = EntityUtils.toString(httpResponse.getEntity());
Document doc = Jsoup.parse(html, testUrl);
// ...

顺便说一下,您不一定需要为后续请求创建一个全新的
HttpClient
。只需重用您已经创建的
httpclient
。另外,以
String
的形式获取响应的方法也很笨拙。上面示例中的第二行显示了如何以最简单的方式执行此操作

我已经编辑了我的pesudo代码。你可以看到我已登录到该网站并传递了cookies。