如何在登录后使用Jodd
和httpclient
在我的个人资料上发表评论?
final HttpBrowser browser = new HttpBrowser();
HttpRequest request = HttpRequest.get("www.facebook.com");
browser.sendRequest(request);
String page = browser.getPage();
Jerry doc = Jerry.jerry(page);
// process login form
doc.form("#login_form", new JerryFormHandler() {
public void onForm(Jerry form, Map<String, String[]> parameters) {
String formAction = form.attr("action");
HttpRequest loginRequest = HttpRequest.post(formAction);
for (Map.Entry<String, String[]> entry : parameters.entrySet()) {
String[] values = entry.getValue();
String name = entry.getKey();
for (String value : values) {
loginRequest.form(name, value);
}
}
// overwrite form parameters
loginRequest.form("email", "your-email-here", true);
loginRequest.form("pass", "your-password-here", true);
browser.sendRequest(loginRequest);
}
});
// this is your personal page:
System.out.println(browser.getPage());
答案 0 :(得分:0)
虽然这不是一个编程问题,但让我试着回答:) Jodd Http 是一个http库,它也允许你模拟浏览器,从某种意义上说它保留会话,所以你可以例如登录某个站点并继续在同一会话中发送请求。
因此,问题与你正在使用的工具(不错的选择顺便说一句:)有关,但与Facebook的工作方式有关。由于我们未在此处使用其API,因此您必须自行进行调查。最好的方法是使用真正的浏览器和开放的开发人员工具(所有浏览器都有)。在开发人员工具中,通常会有一个名为“Net”的选项卡,您可以在其中查看浏览器和站点之间的所有流量。只需过滤掉非HTML请求,删除所有加载图片,脚本,CSS的请求......
现在只需在浏览器中执行您的步骤并观察正在发送的内容。然后只需使用 Jodd :)
回复相同的请求以下是添加朋友的一个此类请求的示例:
我只是回复相同的请求(用于测试目的)和 voila ,10分钟后,测试帐户得到了这么多朋友:)