ApacheHttpClient访问facebook

ApacheHttpClient访问facebook,facebook,apache-commons-httpclient,Facebook,Apache Commons Httpclient,以下场景有任何示例、提示和指导吗 我使用ApacheHttpClient模拟浏览器的功能,通过java应用程序访问facebook。要做到这一点,首先我必须提供用户凭据。我使用了以下网站中提供的示例 但是这些方法中没有一种适用于facebook,下面是我为此编写的测试代码。我没有提供所有写的方法,这里只给出了登录facebook帐户的方法。谢谢你的帮助 private static int connectAndLogin(字符串电子邮件、字符串传递){ trace(“Facebook:====

以下场景有任何示例、提示和指导吗

我使用ApacheHttpClient模拟浏览器的功能,通过java应用程序访问facebook。要做到这一点,首先我必须提供用户凭据。我使用了以下网站中提供的示例

但是这些方法中没有一种适用于facebook,下面是我为此编写的测试代码。我没有提供所有写的方法,这里只给出了登录facebook帐户的方法。谢谢你的帮助

private static int connectAndLogin(字符串电子邮件、字符串传递){
trace(“Facebook:================connectAndLogin开始====================”;
字符串httpResponseBody=getMethod(“http://www.facebook.com/login.php");
if(httpResponseBody==null){
//我们何不再试一次?
尝试
{
睡眠(1000);
}
捕捉(中断异常e)
{
trace(例如getMessage());
}
httpResponseBody=getMethod(“http://www.facebook.com/login.php");
}
trace(“Facebook:=============获取登录页面响应电子书开始=================”;
logger.trace(httpResponseBody);
trace(“Facebook:+get-login-page-ResponseBody-end+end+”;
trace(“Facebook:initialcookies:”);
列出cookies=getCookies();
if(cookies.isEmpty()){
logger.trace(“Facebook:None”);
}否则{
对于(int i=0;i//对于(int i=0;i也许你应该使用一个工具,比如你看了没有。它包装了HttpClient来创建一个无头Java浏览器,使用javaScript执行。这样你就不会一直试图破解单个表单了。

以下基于的代码对我有效:

DefaultHttpClient-httpclient=newdefaulthttpclient();
HttpGet HttpGet=新的HttpGet(“http://www.facebook.com/login.php");
HttpResponse response=httpclient.execute(httpget);
HttpEntity=response.getEntity();
System.out.println(“登录表单get:+response.getStatusLine());
如果(实体!=null){
entity.consumercontent();
}
System.out.println(“cookies的初始集:”);
列表cookies=httpclient.getCookieStore().getCookies();
if(cookies.isEmpty()){
系统输出打印项次(“无”);
}否则{
对于(int i=0;i
我不确定你的代码是否正确管理cookie(会话id保存在其中一个cookie中),也许这就是问题所在。希望这能对你有所帮助


只是为了澄清版本问题:我使用的是HttpClient版本4.X,而不是旧版本(3.X)。它们有很大的不同。

感谢你花在这方面的时间,thanx使用我的用户名和密码登录。当我的朋友尝试时,它不会登录