我正在尝试使用jsoup登录网站(带有一些子系统的内部网页),输入子系统,搜索内容并解析页面。
我可以登录,但是当我尝试访问子系统时,我收到HTTP错误502.但是在浏览器中正常打开。
我认为这是代理的一些问题(已在java中设置)。经过几次尝试后,我的登录被阻止,我收到HTTP错误407(页面被阻止或类似的东西)
我已经尝试将.useragent("mozilla...")
,.timeout(...)
,.ignorehttperrors(true)
,ignorecontenttype(true)
和.cookie
放在一起。
有什么方法可以解决这个问题吗?
Response x = Jsoup.connect("page").data("...").method(method.GET).execute();
我使用了给定的建议(apache httpclient,我不再得到HTTP错误了。 但我仍然想知道jsoup是否可以绕过这个问题,因为我只能使用一个.jar而不是6(来自apache和jsoup的5来解析响应。)。感谢那些编辑我的帖子(rs)的人和ollo的建议。
答案 0 :(得分:1)
以下是使用Java的UrlConnection
:
URLConnection connection = new URL("your url").openConnection();
connection.addRequestProperty("http.proxyHost", "proxy server");
connection.addRequestProperty("http.proxyPort", "proxy port");
// Alternative:
System.setProperty("http.proxyHost", "yourproxyserver");
System.setProperty("http.proxyPort", "portnumber");
InputStream responseStream = connection.getInputStream();
// Read response into buffer and parse it with jsoup
另见我的回答:JSoup over VPN/proxy
(我猜这是更好的一个)
但我真的推荐你 HttpClient (或类似的)用于此类连接。正如我之前所说,jsoup只是一种有限的连接支持。