`
pxchen
  • 浏览: 85223 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

httpclient例子

    博客分类:
  • java
阅读更多
package com.httpclient;

import java.io.IOException;

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;

public class Dbsight {
   
    //登录的地址
    static final String LOGIN_ADDR  = "http://192.168.0.240:8080/dbsight/login.do";
    //scheduleAJob.do的地址
    static final String COMMIT_ADDR = "http://192.168.0.240:8080/dbsight/scheduleAJob.do?indexName=develop_test&cmd=stopIndexing%20updateIndex%20mergeTempIndexes%20updateTempIndex%20mergeIndexesIfNeeded%20updateIndex%20unlockStoppedIndex%20pruneBeforeIndexing%20updateIndex%20createPeriodTable%20unlockStoppedIndex%20maybeBuildSynonyms%20incrementalIndexing%20mergeTempIndexes%20updateTempIndex%20mergeIndexesIfNeeded%20updateIndex%20buildDictionaryIfNeeded%20ping-a-url&text=Incremental%20Indexing";
    //最后执行页的地址
    static final String LOG_ADDR    = "http://192.168.0.240:8080/dbsight/showIndexLog.do?indexName=develop_test";
    //登录密码
    static final String LOGIN_PASSWORD = "chinese";
    //是否记住密码
    static final String LOGIN_REMEBERME = "true";
    private HttpClient client = new HttpClient();
   
    public Dbsight(){

       //登录的参数
        NameValuePair[] loginPair = {
            new NameValuePair("operation", "login"),
            new NameValuePair("password", LOGIN_PASSWORD),
            new NameValuePair("remeberme", LOGIN_REMEBERME)};
        //登录method
        PostMethod loginMethod = this.getPostMethod(LOGIN_ADDR, loginPair);
        loginMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler());
       
        try {
            client.executeMethod(loginMethod);
            //执行状态
            int loginStatusCode = loginMethod.getStatusCode();
            //System.out.println(" loginbody :"+loginMethod.getResponseBodyAsString());
            //登录方法结束
            loginMethod.releaseConnection();
            //跳转执行
            if (loginStatusCode == HttpStatus.SC_MOVED_PERMANENTLY || loginStatusCode == HttpStatus.SC_MOVED_TEMPORARILY  || loginStatusCode  ==  HttpStatus.SC_SEE_OTHER || loginStatusCode == HttpStatus.SC_TEMPORARY_REDIRECT) {
                Header loginLocationHeader = loginMethod.getResponseHeader("location");
                String location = null;
                if(loginLocationHeader != null){
                    location = loginLocationHeader.getValue();
               
                }
                //登录成功
            }else if(loginStatusCode == 200){
                //创建scheduleAJob.do的method
                GetMethod commitMethod = this.getGetMethod(COMMIT_ADDR);
               
                commitMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler());
                client.executeMethod(commitMethod);
                    //执行结果
                int commitStatusCode = loginMethod.getStatusCode();
                //System.out.println(" commitbody: "+ commitMethod.getResponseBodyAsString());
                commitMethod.releaseConnection();
                System.out.println(" commitStatusCode is : "+ commitStatusCode);
                //执行成功
                if(commitStatusCode == 200){
                    //执行页MOTHOD
                    GetMethod logMethod = this.getGetMethod(LOG_ADDR);
                    logMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler());
                    //执行
                    client.executeMethod(logMethod);
                    //执行结果代码
                    int logStatusCode = logMethod.getStatusCode();
                    System.out.println(" logStatusCode is : "+ logStatusCode);
                    System.out.println(" logbody is : "+ logMethod.getResponseBodyAsString());
                    logMethod.releaseConnection();
                   
                }
               
            }
        } catch (HttpException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
       
       
    }

    public HttpClient getClient() {
        return client;
    }

    public void setClient(HttpClient client) {
        this.client = client;
    }

 

    /**
     * 使用 GET 方式提交数据
     *@return
     */



    private GetMethod getGetMethod(String URL){
        return new GetMethod(URL);
     }

     /**
      * 使用 POST 方式提交数据
      *@return
      */


     private PostMethod getPostMethod(String URL,NameValuePair[] pair ){
         PostMethod post = new PostMethod(URL );
         post.setRequestBody( pair);
         return post;
      }
   
    public static void main(String args[]){
        new Dbsight();
    }
}
分享到:
评论

相关推荐

    httpClient例子

    在本示例中,我们将深入探讨如何使用HttpClient进行POST和GET请求,以及如何设置代理。 首先,HttpClient的核心类是`CloseableHttpClient`,它是HTTP客户端的实现,负责创建和管理HTTP连接。为了发起请求,我们需要...

    httpclient 例子

    httpclient 编写java代码 系统自动登入别人的系统进行操作。

    httpclient例子工程

    总结来说,这个“httpclient例子工程”展示了如何利用Apache HttpClient库在Java中发送HTTP请求,并模拟Referer字段。通过理解并实践这个示例,开发者可以更好地掌握HttpClient的用法,从而在实际项目中更有效地处理...

    httpclient.post例子

    本示例将深入探讨如何使用HttpClient库实现POST请求。首先,我们需要理解POST请求的基本概念,它通常用于向服务器发送数据,比如提交表单或者上传文件。 在`httpclient.jar`包中,主要涉及`org.apache.http.client`...

    安卓httpClient例子

    下面我们将深入探讨Android中使用HttpClient的例子及其相关知识点。 1. **HttpClient的基本概念** HttpClient是一个基于Java语言的HTTP客户端编程工具包,它提供了丰富的API,可以方便地创建、发送和处理HTTP请求...

    httpclient4.0 使用帮助、例子

    本篇文章将详细介绍HTTPClient 4.0的使用方法,包括其核心概念、基本操作和示例代码。 一、核心概念 1. HttpClient实例:HttpClient对象是执行HTTP请求的核心,负责建立连接、发送请求和接收响应。通过`...

    httpclient的入门实例

    1. **创建HttpClient实例**:使用`HttpClientBuilder`或`HttpClients`静态工厂方法创建一个HttpClient实例。 ```java HttpClient httpClient = HttpClients.createDefault(); ``` 2. **构建HttpRequest**:...

    HttpClient的小例子

    这个小例子中提供的项目源码应该包含了上述操作的示例代码,你可以直接导入并运行,以了解HttpClient的具体使用。通过学习和实践,你将能熟练掌握HttpClient在实际项目中的应用,如进行网页抓取、API调用等任务。

    HttpClient包及例子

    压缩包中的`httpclient-4.0-alpha2.jar`文件包含了HttpClient库的所有类和方法,而`examples`文件可能包含了一些使用HttpClient的示例代码,帮助开发者更好地理解和使用这个库。通过这些示例,你可以学习如何构建...

    HttpClient测试例子jar包

    可以用作测试例子 测试流传输的接口需要用到,HTTPClient,jar包

    httpclient 开发包以及例子

    在这个"httpclient 开发包以及例子"中,我们主要关注的是HttpClient 4.0-alpha2版本,以及与其相关的依赖库。 `httpclient-4.0-alpha2.jar`是HttpClient的核心库,包含了执行HTTP请求、处理响应和管理连接的主要类...

    android和httpclient结合的例子

    这个例子“android和httpclient结合”旨在帮助初学者理解如何在Android项目中集成和使用HttpClient进行网络请求。 首先,HttpClient是一个强大的、可扩展的HTTP客户端,支持多种HTTP协议版本,包括HTTP/1.1。它提供...

    基于Android1.0_r1的HttpClient的例子

    本篇将深入探讨基于Android 1.0_r1的HttpClient使用方法,以及相关的知识点。 首先,HttpClient是一个Java API,它提供了一个强大的、高度可定制的客户端HTTP协议实现。在Android 1.0_r1的时代,HttpClient是官方...

    HttpClient 需要的JAR包和例子

    在这个例子中,我们有一个基于HttpClient的身份证信息查询示例,它通过身份证号码调用必应接口来获取个人信息。 首先,你需要将提供的JAR包添加到你的项目类路径(ClassPath)中。这个JAR包可能包含了HttpClient库...

    httpclient小例子

    HttpClient是Apache基金会开发...这个小例子虽然简单,但它揭示了HttpClient的基本用法,足以让新手快速入门。通过深入学习和实践,你可以掌握HttpClient的更多高级特性和最佳实践,从而在处理网络请求时更加得心应手。

    org.apache.commons.httpclient

    在HTTP客户端使用例子中,你可以找到如何利用Apache HttpClient进行各种HTTP操作的代码示例。这些示例可能包括发起GET和POST请求,设置请求头,处理cookies,管理连接池,以及处理重定向和错误响应。这些例子对于...

    比较全的httpclient入门介绍和例子代码

    #### 二、HttpClient的使用详解 ##### 1. HttpClient实例化 首先,我们需要创建一个`HttpClient`实例。这一步是所有后续操作的基础,因为所有的HTTP请求都是通过这个实例来执行的。 ```java HttpClient ...

    Httpclient+testng接口测试小例子

    在"Httpclient+testng接口测试小例子"中,我们将使用以下步骤进行接口测试: 1. **环境准备**:首先,确保项目中已经添加了Apache HttpClient和TestNG的依赖。这些通常通过Maven或Gradle等构建工具进行管理,通过在...

    httpclient用到的jar文件,例子

    在Java编程领域,HTTPClient库是一个非常重要的工具,它允许开发者执行HTTP...这个压缩包文件"httpClient"中的JAR文件可能包含了实现这些功能所需的类和库,将它们添加到项目的类路径中,就可以开始使用HTTPClient了。

    httpclient带附件和不带件的例子以及SOAP请求的例子

    httpclient带附件和不带件的例子以及SOAP请求的例子,该压缩包解压后是一个java web工程,直接引入到eclipst下就可以。要在Build Path——Configure Build Path中添加tomcat的lib包。

Global site tag (gtag.js) - Google Analytics