`
DarkWingBoy
  • 浏览: 50842 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Android Java COOKIES

 
阅读更多
/*
* ====================================================================
*
*  Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  See the NOTICE file distributed with
*  this work for additional information regarding copyright ownership.
*  The ASF licenses this file to You under the Apache License, Version 2.0
*  (the "License"); you may not use this file except in compliance with
*  the License.  You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation.  For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/

package org.apache.http.examples.client;

import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

/**
* A example that demonstrates how HttpClient APIs can be used to perform
* form-based logon.
*/
public class ClientFormLogin {

    public static void main(String[] args) throws Exception {

        DefaultHttpClient httpclient = new DefaultHttpClient();

        HttpGet httpget = new HttpGet("https://portal.sun.com/portal/dt");

        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());
            }
        }

        HttpPost httpost = new HttpPost("https://portal.sun.com/amserver/UI/Login?" +
                "org=self_registered_users&" +
                "goto=/portal/dt&" +
                "gotoOnFail=/portal/dt?error=true");

        List <NameValuePair> nvps = new ArrayList <NameValuePair>();
        nvps.add(new BasicNameValuePair("IDToken1", "username"));
        nvps.add(new BasicNameValuePair("IDToken2", "password"));

        httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));

        response = httpclient.execute(httpost);
        entity = response.getEntity();

        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());
            }
        }

        // When HttpClient instance is no longer needed,
        // shut down the connection manager to ensure
        // immediate deallocation of all system resources
        httpclient.getConnectionManager().shutdown();
    }
}

引自http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientFormLogin.java
分享到:
评论

相关推荐

    Android_WebView、Webkit内核深入讲解

    1. Java 层(根目录 device\java\android\android\webkit) * BrowserFrame.java:BrowserFrame 对象是对 WebCore 库中的 Frame 对象的 Java 层封装,用于创建 WebCore 中定义的 Frame,以及为该 Frame 对象提供 ...

    java通过jni调用libcurl,curl java

    libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证。 PHP自带curl扩展,但java没有curl扩展,这个工程的目的,就是将...

    Android浏览器开发设计

    在Android平台上进行浏览器开发是一项复杂而有趣的任务,它涉及到Android系统的基础知识、Java编程语言以及Web相关的技术。本文将深入探讨Android浏览器开发设计的核心概念、关键技术和实现步骤。 首先,我们要理解...

    安卓android版本的curl库

    Curl库在Android应用开发中主要用作网络通信的底层支持,它允许开发者通过HTTP/HTTPS等方式发送请求,获取服务器的数据,甚至处理复杂的HTTP头、POST请求、cookies等。这使得开发者无需深入了解网络协议的细节,就...

    Java及java web学习教程

    Java语言的设计理念是简洁、健壮和高效,这使得它在各种应用领域都有广泛应用,包括桌面应用、企业级应用、移动应用(尤其是Android平台)、云计算服务和Web应用程序。 Java Web开发是利用Java技术构建基于Web的...

    Android的三种网络通信方式

    Android提供了三种主要的网络接口供开发者使用,它们分别是:java.net.*(标准Java接口)、org.apache接口(通常指的是HttpClient库)和Android.net.*(Android特有网络接口)。接下来,我们将详细讨论这三种网络通信...

    android网络编程.pdf

    在Android中处理HTTP请求时,可能需要管理和维护Cookies。可以使用`HttpURLConnection`自带的方法来实现。 ```java // 发送带有Cookie的请求 String cookies = "key=value; expires=date"; httpURLConnection....

    android获取jsessionId和发送jsessionId

    在Android开发中,与服务器进行交互是常见的任务,而`jsessionId`是Web应用程序中用于跟踪用户会话的一种机制。本文将详细讲解如何在Android客户端获取`jsessionId`以及如何在后续请求中发送`jsessionId`,以保持...

    android jni使用curl进行http请求和文件下载

    在Android开发中,JNI(Java Native Interface)是一种技术,允许Java代码和其他编程语言(如C++)进行交互。JNI在很多场景下都很有用,比如优化性能、调用系统底层库或者像本例中那样,利用C/C++库来实现特定功能。...

    Android中WebView使用

    在项目中,你可能还会遇到缓存、Cookies管理、自定义Header、注入JavaScript接口等问题。例如,设置缓存模式: ```java webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); ``` 通过`...

    HttpClient for android 4 3 5 jar

    HttpClient是Apache基金会开发的一个HTTP客户端库,广泛应用于Java和Android平台。在Android中,HttpClient库提供了与Web服务器进行HTTP通信的能力,支持各种HTTP方法(如GET、POST等),以及处理cookies、重定向、...

    android-chromium-view-master.rar

    `java`目录包含了Java接口和控件,它们是Android应用与Chromium内核交互的桥梁。`cpp`目录包含C++代码,这部分代码主要是Chromium的原生库,用于处理底层的网络请求和渲染工作。`res`目录则存储了应用的资源文件,如...

    android4.0 Browser浏览器 源代码

    Android 4.0 Browser的架构基于Chromium开源项目,其核心组件包括渲染引擎(WebKit)、JavaScript引擎(V8)以及与Android系统交互的Java层。源代码中,你可以看到BrowserActivity作为主要的入口点,处理用户的交互...

    基于Android平台的校园助手APP设计与实现.pdf

    该APP的设计是基于Android平台的,使用了数据抓包、Cookies模拟登陆、Jsoup数据解析、SQLiteDatabase等技术。系统实现了教务管理接入、成绩查询、空教室查询、课表查询等功能,用户可以随时随地查询相关信息。 在...

    android cookie获取和设置,webView的cookie的同步

    ### Android Cookie 获取与设置以及 WebView 的 Cookie 同步 在 Android 开发中,Cookie 的管理和同步对于维护用户会话状态至关重要。特别是在使用 HttpClient 发起网络请求时,保持客户端与服务器端 Session 的...

    Android用HttpConnection访问网络时实现类似浏览器自动保持上一次会话的功能

    在Android应用开发中,使用HttpURLConnection访问网络时,有时候我们需要实现类似浏览器的自动保持会话功能,以便在用户登录后,后续的网络请求能够自动携带上登录状态,无需每次都重新登录。这种功能在处理需要持久...

    Android优秀简历

    - 解决使用OkHttpUtils的cookies值无法持久化的问题; - 解决多线程使用SharedPreferences不安全的问题。 2. **项目名称**:爱回扣客户端 - **开发工具**:AS+GIT - **项目描述**:一款购物返利的应用程序,被...

Global site tag (gtag.js) - Google Analytics