Java apache http客户端

Java apache http客户端,java,android,facebook,apache,Java,Android,Facebook,Apache,好的。。。在我探索用android编程上网的过程中。我终于确信ApacheHTTPAPI是一条出路。不过我需要一些人帮我使用它。我已经设法使用httppost登录,但我希望能够在此之后继续。再次以facebook为例,我登录到facebook,现在我想使用这个登录会话来发布状态,我该如何继续? 这是迄今为止的代码(需要清理和填充,它主要是从各种来源复制的) public void onCreate(Bundle savedInstanceState){ super.onCreate(savedI

好的。。。在我探索用android编程上网的过程中。我终于确信ApacheHTTPAPI是一条出路。不过我需要一些人帮我使用它。我已经设法使用httppost登录,但我希望能够在此之后继续。再次以facebook为例,我登录到facebook,现在我想使用这个登录会话来发布状态,我该如何继续? 这是迄今为止的代码(需要清理和填充,它主要是从各种来源复制的)

public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DefaultHttpClient httpclient=新的DefaultHttpClient();
试一试{
HttpGet HttpGet=新的HttpGet(“https://www.facebook.com/");
试一试{
HttpResponse response=httpclient.execute(httpget);
HttpEntity=response.getEntity();
//System.out.println(“登录表单get:+response.getStatusLine());
//EntityUtils.consume(实体);
//System.out.println(“cookies的初始集:”);
列表cookies=httpclient.getCookieStore().getCookies();
if(cookies.isEmpty()){
系统输出打印项次(“无”);
}否则{
对于(int i=0;i
用你的电子邮件和密码替换星星,这会让你进入facebook,我如何从那里开始发布状态


同样,请不要告诉我有facebook api,我不想使用它,这里的重点是学习使用apache库。最好的开始方式是wireshark,查看浏览器在发布状态时的操作。然后在HTTPClient中适应它。

在移动客户端中保持会话的最佳方式应该是使用OAuth,当您获得OAuth令牌时,您可以使用该令牌使用Facebook提供的任何api

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    DefaultHttpClient httpclient = new DefaultHttpClient();

    try {
        HttpGet httpget = new HttpGet("https://www.facebook.com/");
      try{
        HttpResponse response = httpclient.execute(httpget);
        HttpEntity entity = response.getEntity();

      //  System.out.println("Login form get: " + response.getStatusLine());
 //    EntityUtils.consume(entity);

       // System.out.println("Initial set of cookies:");
        List<Cookie> cookies = httpclient.getCookieStore().getCookies();
        if (cookies.isEmpty()) {
            System.out.println("None");
        } else {
            for (int i = 0; i < cookies.size(); i++) {
                System.out.println("- " + cookies.get(i).toString());
            }
        }
       // https://www.facebook.com/login.php?login_attempt=1
         HttpPost httpost = new HttpPost("https://www.facebook.com/login.php?login_attempt=1");

        List <NameValuePair> nvps = new ArrayList <NameValuePair>();
        nvps.add(new BasicNameValuePair("email", "****"));
        nvps.add(new BasicNameValuePair("pass", "****"));

        try {
            httpost.setEntity(new UrlEncodedFormEntity(nvps));
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try {
            response = httpclient.execute(httpost);
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        entity = response.getEntity();
        Toast.makeText(getBaseContext(), "done",Toast.LENGTH_LONG);
        System.out.println("Login form get: " + response.getStatusLine());
    //   EntityUtils.consume(entity);

        System.out.println("Post logon cookies:");
        cookies = httpclient.getCookieStore().getCookies();
        if (cookies.isEmpty()) {
            System.out.println("None");
        } else {
            for (int i = 0; i < cookies.size(); i++) {
                System.out.println("- " + cookies.get(i).toString());
            }
        }

    }finally {} }catch (Exception e) {
        // TODO: handle exception
    }finally {
        // When HttpClient instance is no longer needed,
        // shut down the connection manager to ensure
        // immediate deallocation of all system resources
        httpclient.getConnectionManager().shutdown();
        Toast.makeText(getBaseContext(), "done",Toast.LENGTH_LONG);
    }

} 
    }