`
hymcn2008
  • 浏览: 3012 次
社区版块
存档分类
最新评论

httpclient util

 
阅读更多
import org.apache.commons.httpclient.*;
...
public class HttpClientUtils {
    /**
     * 通过get方法获取HTTP response;
     * @param URL
     * @param headerMap
     * @return
     */
    public static String getHttpResponse4Get(String URL,Map<String,String> headerMap){

        //构造HttpClient的实例
        HttpClient httpClient = new HttpClient();
        //创建GET方法的实例
        GetMethod getMethod = new GetMethod(URL);
        //使用系统提供的默认的恢复策略
        getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
                new DefaultHttpMethodRetryHandler());
        //装载Header信息
        if(headerMap!=null){
            Iterator<String> it= headerMap.keySet().iterator();
            while (it.hasNext()){
                String key =(String)it.next();
                String value=headerMap.get(key);
                getMethod.setRequestHeader(key,value);
            }
        }
        try {
            //执行getMethod
            int statusCode = httpClient.executeMethod(getMethod);
            if (statusCode != HttpStatus.SC_OK) {
                System.err.println("Method failed: "
                        + getMethod.getStatusLine());
            }
            //读取内容
            byte[] responseBody = getMethod.getResponseBody();
            System.out.println("------- Response Info --------");
            System.out.println("statusCode:"+statusCode);
            //处理内容
            String body= new String(responseBody);
            System.out.println(body);
            return body;
        } catch (HttpException e) {
            //发生致命的异常,可能是协议不对或者返回的内容有问题
            System.out.println("Please check your provided http address!");
            e.printStackTrace();
        } catch (IOException e) {
            //发生网络异常
            e.printStackTrace();
        } finally {
            //释放连接
            getMethod.releaseConnection();
        }
        return "";
    }


    /**
     * 通过Post方法获取HTTP返回值
     * @param url
     * @param headerMap
     * @param postMap
     * @return
     */
    public static String getHttpResponse4Post(String url,Map<String,String> headerMap,Map<String,String> postMap)
    {
        //构造HttpClient的实例
        HttpClient httpClient = new HttpClient();
        PostMethod postMethod = new PostMethod(url);

        //装在Header信息
        if(headerMap!=null){
            Iterator<String> it= headerMap.keySet().iterator();
            System.out.println("-----HeaderInfo-----");
            while (it.hasNext()){
                String key =(String)it.next();
                String value=headerMap.get(key);
                System.out.println(key+"-->"+value);
                postMethod.setRequestHeader(key,value);
            }
        }
        // 填入各个表单域的值
        if(postMap!=null){
            System.out.println("-----PostData-----");
            Iterator<String> it= postMap.keySet().iterator();
            while (it.hasNext()){
                String key =(String)it.next();
                String value=postMap.get(key);
                System.out.println(key+"-->"+value);
                postMethod.setParameter(key,value);
            }
        }
        try {
            //执行getMethod
            int statusCode = httpClient.executeMethod(postMethod);
            if (statusCode != HttpStatus.SC_OK) {
                System.err.println("Method failed: "
                        + postMethod.getStatusLine());
            }
            //读取内容
            byte[] responseBody = postMethod.getResponseBody();
            //处理内容
            String body= new String(responseBody);
            System.out.println("------- Response Info --------");
            System.out.println("statusCode:"+statusCode);
            System.out.println(body);
            return body;
        } catch (HttpException e) {
            //发生致命的异常,可能是协议不对或者返回的内容有问题
            System.out.println("Please check your provided http address!");
            e.printStackTrace();
        } catch (IOException e) {
            //发生网络异常
            e.printStackTrace();
        } finally {
            //释放连接
            postMethod.releaseConnection();
        }
        return "";
    }
}


### always remember ###
get(post)Method.releaseConnection();

OTHERWISE: you will eat up all connections

 

分享到:
评论

相关推荐

    HttpClientUtil工具类发送get和post请求,支持http和https,支持发送文件

    下面我们将详细讨论HttpClientUtil工具类如何实现这些功能。 首先,HttpClientUtil工具类通常会封装HttpClient的基本操作,以便于开发者在应用中便捷地调用。GET和POST请求是HTTP协议中最常见的两种请求方法。GET...

    HttpClientUtil

    接收到响应后,HttpClientUtil会解析响应的状态码和内容,确保请求的成功,并将数据以指定格式(如字符串、JSON或XML)返回给调用者。 POST请求在HttpClientUtil中通常用于向服务器提交数据。与GET请求类似,但会...

    http请求工具类HttpClientUtil,get,post请求(csdn)————程序.pdf

    1. **HttpClientUtil 类结构**: 类中定义了一个静态的日志器 LOGGER,用于记录执行过程中的信息,使用的是 SLF4J 日志框架。此外,创建了一个静态的 `CloseableHttpClient` 实例 `client`,这是 HttpClient 的核心...

    httpClientUtil工具类

    httpClientUtil工具类

    HttpClientUtil.java

    HttpClientUtil请求第三方接口,可以直接使用,post请求方式、get请求方式都有,直接粘贴复制就ok

    httpclientutil

    在"HttpClientUtil2-发送json返回json测试通过.java"这个文件中,我们可以预见到这是一个实现了发送JSON数据并接收JSON响应的示例。以下是一些关键知识点: 1. **Apache HttpClient 库**:HttpClient 是 Apache ...

    HttpClientUtil工具类,调用第三方接口

    该工具类是java 调用第三方接口时需要使用到的。HttpClientUtil 包含get和post方法。

    HttpClientUtil4.java

    HttpClientUtil4.java 工具类

    HttpClientUtil工具类 里面包含GET POST 及返回值处理

    - **实例化HttpClientUtil**:在代码中创建HttpClientUtil的实例。 - **调用方法**:根据需求,调用GET或POST方法,传入必要的参数(如URL、请求头、请求体等)。 - **处理返回值**:获取到的返回值通常是一个...

    httpclientUtil

    1.基于HttpClient-4.4.1封装的一个工具类; 2.基于HttpAsycClient-4.1封装的异步HttpClient工具类; 3.javanet包下面是基于jdk自带的UrlConnection进行封装的。 前2个工具类支持插件式配置Header、插件式配置...

    HttpClientUtil2.java

    HttpClient汇总工具类 HttpClient汇总工具类HttpClient汇总工具类HttpClient汇总工具类

    httpClientUtil

    自己做项目中用到的,以后保存下来以防以后用到。多多积累。

    Java Http工具类HttpClientUtil

    多年积累,功能比较强大,可设置路由连接数,时间,请求类型包括get,post, 参数包括urlcode,map,json,xml。注释很清楚。

    基于jmeter+Java+HttpclientUtil实现的接口测试工具

    基于jmeter+Java+HttpclientUtil实现的接口测试工具,通过Excel表格进行维护接口相关参数信息,借助Jmeter工具通过java请求设计接口测试自动化测试用例。代码重写了JavaSampleClient类,在使用过程中取出了冗余的...

Global site tag (gtag.js) - Google Analytics