`

HttpClient的简单用法

阅读更多
package com.dc.framework.util;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;

import com.dc.brisk.soa.util.DataWindow;
import com.dc.framework.component.ConfigResource;

/**
 * 读取HTTP内容
 */
public class HttpClientUtil {
    private static final String appName = "physicalService";
    private static final String backup_service = "snapshot_physical";
    private static final String restore_service = "restore_physical";
    private static final String ip;
    private static final int port;
    private static final String server_protocol;
    private static final String uri;

    static{
        ip  = ConfigResource.getConfig(ConfigResource.SERVER_IP);
        port = Integer.valueOf(ConfigResource.getConfig(ConfigResource.SERVER_PORT));
        server_protocol = ConfigResource.getConfig(ConfigResource.SERVER_PROTOCOL);
        uri = ConfigResource.getConfig(ConfigResource.SERVER_URI);
    }
    public static void main(String[] args) throws HttpException, IOException
    {
        getRemoteHostStatus("10.1.180.178") ;
    }


    public static DataWindow getRemoteHostStatus(String ip){
        DataWindow result = new DataWindow(DataWindow._NAME_VALUE);
        HttpClient client = new HttpClient();
        client.getHostConfiguration().setHost(ip,port,server_protocol);
        NameValuePair[] values = new NameValuePair[2];
        values[0] = new NameValuePair("AppName","EquipMon");
        values[1] = new NameValuePair("Service","Usage");
        HttpMethod method = getPostMethod(uri,values);
        try {
            client.executeMethod(method);
            //打印服务器返回的状态
            String response = new String(method.getResponseBodyAsString().getBytes("8859_1"));
            method.releaseConnection();
            //打印返回的信息
            result.putAttribute("status", method.getStatusCode());
            /*
             * {"CPU":"16.0"
                ,"MEM":"52.310001373291016"
                ,"DISK0":"58.76"
                ,"DISK1":"5.08"
                ,"DISK2":"8.05"
                }
             */
            String[] array = response.replace("{", "").replace("}", "").split(",");
            for(int i=0;i<array.length;i++)
            {
                String each = array[i];
                String[] key_value = each.split(":");
                key_value[0] = key_value[0].replaceAll("\"", "");
                key_value[1] = key_value[1].replaceAll("\"", "").replaceAll("[\r\n]", "");
                if("MEM".equals(key_value[0].trim()))
                {
                    key_value[1] = key_value[1].substring(0,key_value[1].indexOf(".")+3);
                }
                result.putAttribute(key_value[0], key_value[1]);
            }
        } catch (HttpException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return result;
    }

    public static void printDataWindow(DataWindow data)
    {
        StringBuffer sb = new StringBuffer();
        TransforTools.enCodeJson(data, sb);
        System.out.println(sb);
    }

    public static String execBackup(String backName,String src_volume_list,String target_volume_list) throws HttpException, IOException{
        HttpClient client = new HttpClient();
        client.getHostConfiguration().setHost(ip,port,server_protocol);
        //使用 POST 方式提交数据
        NameValuePair[] values = new NameValuePair[5];
        values[0] = new NameValuePair("AppName",appName);
        values[1] = new NameValuePair("Service",backup_service);
        values[2] = new NameValuePair("backName",backName);
        values[3] = new NameValuePair("src_volume_list",src_volume_list);
        values[4] = new NameValuePair("target_volume_list",target_volume_list);
        HttpMethod method = getPostMethod(uri,values);
        client.executeMethod(method);
        //打印服务器返回的状态
        System.out.println(method.getStatusLine()); // 打印结果页面
        String response = new String(method.getResponseBodyAsString().getBytes("8859_1"));

        method.releaseConnection();
        //打印返回的信息
        System.out.println(response);
        return response;
    }

    public static String execRestore(String backName,String src_volume_list,String target_volume_list) throws HttpException, IOException{
        HttpClient client = new HttpClient();
        client.getHostConfiguration().setHost(ip,port,server_protocol);
      //使用 POST 方式提交数据
        NameValuePair[] values = new NameValuePair[5];
        values[0] = new NameValuePair("AppName",appName);
        values[1] = new NameValuePair("Service",restore_service);
        values[2] = new NameValuePair("backName",backName);
        values[3] = new NameValuePair("src_volume_list",src_volume_list);
        values[4] = new NameValuePair("target_volume_list",target_volume_list);
        HttpMethod method = getPostMethod(uri,values);
        client.executeMethod(method);
        //打印服务器返回的状态
        System.out.println(method.getStatusLine()); // 打印结果页面
        String response = new String(method.getResponseBodyAsString().getBytes("8859_1"));

        method.releaseConnection();
        //打印返回的信息
        System.out.println(response);
        return response;
    }

    //使用 GET 方式提交数据
    public static HttpMethod getGetMethod() {
        return new GetMethod("/simcard.php?simcard=1330227");
    }

    //使用 POST 方式提交数据
    public static HttpMethod getPostMethod(String uri,NameValuePair[] parametersBody) {
        PostMethod post = new PostMethod(uri);
        post.setRequestBody(parametersBody);
        return post;
    }
}

 

分享到:
评论

相关推荐

    httpclient简单使用

    本教程将基于标题"HTTPClient简单使用"和提供的文件`HttpService`、`HttpClient`来阐述HTTPClient的基本使用方法。 1. **HTTPClient简介** HTTPClient是Apache的 HttpClient库,它为Java开发者提供了全面的HTTP...

    httpclient简单示例说明

    本文将深入探讨HttpClient的使用方法,并通过一个简单的示例来说明。 首先,我们了解HttpClient的基本用法。在Java代码中,我们需要导入HttpClient的相关依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖:...

    httpclient测试请求方法

    标题中的“httpclient测试请求方法”指的是使用Apache HttpClient库进行HTTP请求的方法。HttpClient是一个功能强大的客户端编程工具包,它允许开发者构建复杂的HTTP客户端应用程序。在本文中,我们将深入探讨...

    HttpClient的简单使用,get、post、上传、下载

    在这个主题中,我们将深入理解HttpClient的使用方法,并探讨如何实现服务端和客户端的交互。 一、HttpClient的简单使用 1. 添加依赖 在Java项目中使用HttpClient,首先需要添加对应的依赖。对于Maven项目,可以在...

    简单的httpClient访问

    这篇名为“简单的httpClient访问”的博文可能是介绍如何使用HttpClient进行基础的HTTP请求。HttpClient库提供了丰富的功能,包括GET、POST请求,设置请求头,处理响应,以及支持HTTPS等。接下来,我们将深入探讨...

    httpClient组件使用说明

    本篇文章将详细讲解HttpClient的使用方法,包括如何搭建环境、所需的jar包、基本应用以及实例演示,旨在帮助初级学员快速掌握HttpClient的基础操作。 一、环境搭建 在使用HttpClient之前,首先需要在项目中引入...

    Httpclient使用jar包三合一,基本使用方法

    简单使用方法: public static void main(String[] args) { // String str1 = &quot;http://dev.d-smart.cn/Login&quot;; // http协议路径 String str1 = &quot;&quot;; HttpClient httpClient = new HttpClient...

    jsoup+httpclient j简单爬虫

    **JSoup + HttpClient 简单爬虫** 在信息技术领域,数据抓取,或称“爬虫”,是一种自动化获取网页信息的技术。...这个过程可以帮助你更好地理解和掌握这两种库的使用方法,为更复杂的网络爬虫项目打下坚实的基础。

    HTTPClient 的一个封装

    这个“HTTPClient的一个封装”显然指的是对Apache HttpClient库进行了定制化处理,以适应特定项目需求或者简化API使用。下面将详细讨论HttpClient的核心概念、封装的目的以及可能实现的方式。 HttpClient是Apache...

    HttpClient介绍和使用文档

    以下是一个使用HttpClient简单读取网页内容的例子: ```java import java.io.IOException; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.GetMethod; public ...

    commons-httpclient-3.0.jar JAVA中使用HttpClient可以用到

    《JAVA中使用HttpClient:commons-httpclient-3.0.jar详解》 在JAVA开发中,进行HTTP请求时,Apache的HttpClient库是一个不可或缺的工具。本文将深入解析`commons-httpclient-3.0.jar`,它是HttpClient的一个重要...

    httpclient

    使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。 1. 创建HttpClient对象。 2. 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建...

    C#HTTPclient 实例应用

    `HttpClient`是C#中处理HTTP请求的核心工具,掌握了其用法,无论是进行简单的数据获取还是复杂的网络交互,都能得心应手。在实际项目中,根据需求灵活运用`HttpClient`的各种功能,可以构建出高效且健壮的网络通信...

    httpclient使用教程

    ### httpclient使用教程 #### HttpClient概述与重要性 ...为了解决这一问题,Apache ...此教程不仅介绍了HttpClient的基本使用方法,还强调了资源管理和异常处理的重要性,是Java开发者处理HTTP通信不可或缺的技能之一。

    HttpClient 调用WebService示例

    HttpClient是Apache基金会开发的一个HTTP客户端库,广泛应用于Java开发者中,用于执行HTTP...对于RESTful API,使用HttpClient则更为简单,只需构造合适的URL和请求体,然后按照HTTP方法(如GET、POST)进行操作即可。

    httpclient官网教程中文版

    - **灵活性**:与标准库提供的简单HTTP支持相比,HttpClient提供了更多高级特性,比如Cookie管理和自动重定向等,使得开发者可以更灵活地控制HTTP交互行为。 ##### 2.2 HttpClient的功能范围 - **HTTP协议支持**:...

    HttpClient 3.x to HttpComponents HttpClient 4.x

    例如,在HttpClient 3.x中,代码可能会使用`***mons.httpclient.HttpClient`类和`***mons.httpclient.methods.GetMethod`等,而在4.x版本中,这些都被新的API所替代。程序员需要熟悉`org.apache....

Global site tag (gtag.js) - Google Analytics