使用Java发布到站点,导航通过';我同意';重新使用
我正在尝试访问一个站点,并获取要处理的请求以遵循重定向。 我访问了“我同意”网站,但它似乎没有继续过去,并不断重定向我 这是我的密码:使用Java发布到站点,导航通过';我同意';重新使用,java,url,post,Java,Url,Post,我正在尝试访问一个站点,并获取要处理的请求以遵循重定向。 我访问了“我同意”网站,但它似乎没有继续过去,并不断重定向我 这是我的密码: public static void main(String[] args) { System.out.println("results"); //String targetConfirmation18 = ""; URL url; HttpURLConnection connection; OutputStreamWr
public static void main(String[] args)
{
System.out.println("results");
//String targetConfirmation18 = "";
URL url;
HttpURLConnection connection;
OutputStreamWriter osw = null;
BufferedReader br = null;
String line;
try {
url = new URL("");
//url = new URL(targetConfirmation);
connection = (HttpURLConnection)url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
osw = new OutputStreamWriter(connection.getOutputStream());
osw.write("");
osw.flush();
br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException ioe) {
// nothing to see here
}
}
}
在您发布18+url后,网站将设置cookies。您必须记住它们,并随下一个请求一起提交。你可以很容易地用FireBug解决这个问题 因此,您需要使用比简单URL更高级的HTTP客户端。例如,它允许cookie操作
本节专门介绍Cookie。我怀疑您违反了。他们说: 您可以使用行业标准的web浏览器下载和查看内容,仅用于个人、非商业用途 及 保留本协议未明确授予的所有权利
我敢肯定,这里的问题是HTTP会话 当您使用浏览器浏览站点时,服务器将创建HTTP会话并将其ID作为cookie之一发送。然后,浏览器会在每个请求上发回cookies,以便服务器能够识别这是现有会话 我认为当会话未知时,服务器总是将您重定向到18+页 那么,在您的案例中,为什么会话是未知的呢?这是因为你所有的请求都是独立的。你应该做一个浏览器。不要从发布到18+确认页面开始。从HTTP get开始,它会将您重定向到此页面。从响应头集合Cookie中获取Cookie,并使用请求头“Cookie”将Cookie发送回 您还可以使用更高级别的工具,如Jakarta HTTP client,自动完成这项工作,但自己实现它是一个很好的练习。我多次尝试这种技术,发现它也适用于标准的HttpUrlConnection 顺便说一句,我希望这不是你的情况,但有时你必须模仿用户代理:将自己呈现为已知的浏览器之一。否则,某些网站会将您重定向到显示您的浏览器不受支持的页面
祝你好运。^我在谷歌上搜索了很久,似乎我需要使用httpclient。你能解释一下在这个例子中如何使用httpclient吗?或者只是给我指出一些正确的方向,比如一些例子。你的答案是非常感谢你可能想阅读他们的教程。我更新了答案,提到了关于cookies的特定部分。从技术上讲,这是一个有趣的项目,但我同意@Stephen的说法,这可能违反了他们的服务条款。你将有效地绕过他们的18+检查,这可能是非盟法律所要求的。你需要伪造你的标题。就这么简单。例如,如果你想使用Java编写的爬行器来爬行网络,你最好通过假冒的用户代理,假装你是一个非常普通的导航器,比如Firefox.Hi。谢谢你的回答。我解决了我的问题。我正在使用一个HttpPost来尝试获得回复。。它一直重定向到18+页面。我把它改成了一个HttpGet,它工作得很好!现在提取cookie并继续我的会话!我忘了提一下,我设法用你建议的雅加达httpclient完成了