`
liuwenlong62555
  • 浏览: 20261 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

HttpClient 登陆后,进行访问数据

阅读更多

 

package com.ch2;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.io.IOUtils;

public class HttpClientLogin {

    public static void main(String[] args){
        //登陆 Url
        String loginUrl = "http://localhost:8080/test/web/login.do";
 
        //需登陆后访问的 Url
        String dataUrl = "http://localhost:8080/test/web/getWorklist.do";
 
        HttpClient httpClient = new HttpClient();
 
        //模拟登陆,按实际服务器端要求选用 Post 或 Get 请求方式
        PostMethod postMethod = new PostMethod(loginUrl);
 
        //设置登陆时要求的信息,一般就用户名和密码,验证码自己处理了
        NameValuePair[] data = {
                new NameValuePair("name", "aa"),
                new NameValuePair("password", "password")
        };
        //{    "name": "aa",     "password": "password"}
        //postMethod.setRequestBody(data);
 
      //向服务器写json
        String json="{\"name\": \"aa\",     \"password\": \"password\"}";
        InputStream   inputStream   =   new   ByteArrayInputStream(json.getBytes());
        postMethod.setRequestBody(inputStream);
        try {
            //设置 HttpClient 接收 Cookie,用与浏览器一样的策略
            httpClient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
            httpClient.executeMethod(postMethod);
 
            //获得登陆后的 Cookie
            Cookie[] cookies=httpClient.getState().getCookies();
            String tmpcookies= "";
            for(Cookie c:cookies){
                tmpcookies += c.toString()+";";
            }
 
            //进行登陆后的操作
            PostMethod getMethod = new UTF8PostMethod(dataUrl);
 
            //每次访问需授权的网址时需带上前面的 cookie 作为通行证
            getMethod.setRequestHeader("cookie",tmpcookies);
 
            //你还可以通过 PostMethod/GetMethod 设置更多的请求后数据
            //例如,referer 从哪里来的,UA 像搜索引擎都会表名自己是谁,无良搜索引擎除外
            postMethod.setRequestHeader("Referer", "http://unmi.cc");
            postMethod.setRequestHeader("User-Agent","Unmi Spot");
 
            httpClient.executeMethod(getMethod);
 
            //打印出返回数据,检验一下是否成功
            InputStream in=getMethod.getResponseBodyAsStream();
            //System.out.println(IOUtils.toString(in,"UTF-8"));

            String a=IOUtils.toString(in,"UTF-8");
            System.out.println(a);
        } catch (Exception e) {
            e.printStackTrace();
        }  
    }
   
    private static class UTF8PostMethod extends PostMethod{
        public UTF8PostMethod(String url){
            super(url);
        }
       
        @Override
        public String getRequestCharSet() {
            //return super.getRequestCharSet();
            return "UTF-8";
        }
    }
}

分享到:
评论

相关推荐

    httpUtil httpclient 登陆携带cookie访问下一个连接

    在这个场景中,我们关注的是如何使用`httpclient`进行模拟登录并携带cookie来访问后续的URL。这个过程通常涉及到处理session和身份验证,对于开发需要登录功能的Web应用或自动化测试脚本尤其有用。 首先,`...

    httpclient4之百度模拟登陆,回复与58同城自动登陆

    本主题将深入探讨如何使用HttpClient4库进行百度和58同城的模拟登陆操作。HttpClient4是一个强大的Java库,它提供了丰富的功能来执行HTTP请求,非常适合进行网页交互。 首先,我们来了解HttpClient4的基本用法。...

    httpclient绕过登陆验证码直接抓取内部数据

    我们可以通过浏览器的开发者工具获取登录后的 Cookie,然后将其添加到 HttpClient 中,从而实现免登录访问。 HttpClient 的 Cookie 策略 HttpClient 的 Cookie 策略可以分为三种:BEST_MATCH、BROWSER_...

    Hsk.rar_hsk_httpClient登陆_自动登陆网页

    Oracle、META-INF和javax目录下的文件可能是库依赖或者元数据,它们确保了HTTPClient库和其他相关组件的正确运行。 学习这个示例可以帮助我们深入理解网络请求的工作原理,特别是在处理登录这类涉及身份验证的任务...

    httpclient测试登录并提交表单功能

    本文将详细介绍如何使用Apache HttpClient库进行模拟登录以及提交表单数据的操作。通过一个具体的示例程序来演示这一过程,帮助读者理解整个流程。 #### 使用场景 在Web应用开发过程中,常常需要模拟用户的登录行为...

    Jsoup+httpclient 模拟登陆和抓取

    Jsoup+httpclient 模拟...通过上述知识点,可以了解到使用Jsoup和HttpClient进行网页登录和内容抓取的完整流程和关键技术点。在实际开发中,这些知识点可以帮助开发者高效地处理HTML页面数据,实现对网页的自动化操作。

    HttpClient模拟登陆方正系统

    在模拟登录成功后,我们可以通过HttpClient访问方正系统的其他接口,获取课程、成绩等信息。以下是一些关键步骤: 1. 保持会话:登录成功后,服务器通常会返回一个session cookie。在后续的请求中,我们需要把这个...

    新浪,腾讯微博HttpClient4模拟登陆

    4. **处理响应**:同样,登录成功后,获取并保存新的Cookie,以便进行后续的API调用。 总结来说,模拟登录微博平台,如新浪和腾讯,主要涉及HttpClient4的使用,包括创建HTTP客户端、构建POST请求、处理响应和...

    httpclient-4.3.3+jsoup-1.7.3模拟登陆csdn

    总的来说,这个项目展示了如何结合HttpClient和Jsoup进行网络请求和页面解析,以实现对CSDN的模拟登录和内容抓取。在实际应用中,还需要考虑异常处理、页面动态加载、反爬策略等复杂情况,以确保程序的稳定性和效率...

    乐橙httpclient的userTocken的获取

    本文将详细讲解如何获取`userToken`,以及使用`httpclient`进行相关操作的步骤。 首先,`userToken`是乐橙平台为每个用户分配的唯一标识,通常在用户登录成功后由服务器返回。它包含了用户的权限信息,用于后续API...

    httpclient模拟登陆具体实现(使用js设置cookie)

    通过HttpClient,可以模拟浏览器进行网页访问和数据交互,这对于进行Web自动化测试和数据抓取等操作尤为有用。 - **模拟登录的必要性:** 在很多网站的交互过程中,登录是第一步。一旦登录成功,网站会生成一个或多...

    java爬虫模拟登陆源码

    Java爬虫模拟登陆是网络爬虫技术中一个重要的环节,特别是在需要登录后才能访问的数据抓取场景中。本文将深入探讨这一主题,介绍如何使用Java编写爬虫进行模拟登录,并获取登录后的网页数据。 首先,我们需要理解...

    c#实例教学之QQ登陆访问本地数据库

    在本"C#实例教学之QQ登陆访问本地数据库"的教学中,我们将探讨如何使用C#编程语言来实现一个功能,允许用户通过QQ账号登录,并在登录后访问本地数据库。这个实例涵盖了多个关键知识点,包括C#的图形用户界面设计、...

    java使用post登陆新浪微博并保存登陆后网页程序

    8. **线程安全**:如果需要多线程操作,还需要考虑线程安全问题,避免并发访问时的数据冲突。 9. **依赖管理**:项目中引入的外部库(如HttpClient、Jsoup)需要通过Maven或Gradle等工具进行管理,确保版本兼容性。...

    爬虫模拟登陆、爬虫模拟登陆

    在IT领域,爬虫模拟登录是一项重要的技术,用于获取那些需要用户身份验证才能访问的数据。在Java中,HttpClient是一个常用库,它允许我们构建复杂的HTTP客户端应用,包括模拟登录功能。下面将详细介绍如何使用Java ...

    java网络爬虫-通过登陆网站携带COOKIE信息爬取网站数据

    在这个特定的场景中,爬虫需要处理登录过程,以便能够携带有效的COOKIE信息来访问受保护的网页,如题库数据。下面,我们将深入探讨如何实现这个功能,以及与MySQL数据库的结合。 首先,登录网站时通常需要发送一个...

    .NET阿里巴巴平台的免登陆接口的实现代码

    在.NET开发环境中,针对阿里巴巴平台实现免登陆接口是一项常见的需求,尤其对于自动化测试、数据抓取或者集成系统来说,能够避免频繁的人工登录操作,提高工作效率。本文将深入讲解如何在.NET框架下实现这一功能。 ...

    爬虫 登陆 知乎 android java

    7. **知乎API**:知乎提供了一些官方的API,但它们通常有访问限制,且登录后的某些功能可能无法通过API获取。如果官方API无法满足需求,可能需要直接解析登录后的网页内容。 8. **模拟登录**:在登录过程中,可能会...

    安卓QQ登陆协议示例(c#).zip

    这通常涉及网络编程、身份验证、OAuth协议、JSON解析等相关技术,用于与QQ服务器进行安全的数据交换,获取用户的登录凭据和权限。 【标签】:“QQ登陆协议”和“安卓QQ登陆协议示例”是关键词,它们明确了我们要...

    登陆爬虫 C# 代码

    10. **合规性**:在编写爬虫时,务必遵守相关法律法规,尊重网站的Robots协议,并确保不对目标网站造成过大的访问压力。 通过理解和掌握以上知识点,我们可以构建一个功能完善的C#登录爬虫,既能模拟用户登录,也能...

Global site tag (gtag.js) - Google Analytics