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

HttpCilent 实例(2)

 
阅读更多
封装的HttpCilent工具类


public class HttpRequestUtil {

    private static Logger log = LoggerFactory.getLogger(HttpRequestUtil.class);

    /**
     * 发送get请求
     * @param url
     * @param decodeCharset
     * @return
     */
    public static String sendGetRequest(String url, String decodeCharset) {
        HttpClient httpclient = new DefaultHttpClient();
        String responseContent = null;
        HttpGet httpGet = new HttpGet(url);
        HttpEntity entity = null;
        try {
            HttpResponse response = httpclient.execute(httpGet);
            System.out.println(response);
            entity = response.getEntity();
            if (null != entity) {
                responseContent = EntityUtils.toString(entity, decodeCharset == null ? "UTF-8" : decodeCharset);
            }
        } catch (Exception e) {
            log.error("该异常通常是网络原因引起的,如HTTP服务器未启动等,堆栈信息如下", e);
        } finally {
            try {
                EntityUtils.consume(entity);
                httpclient.getConnectionManager().shutdown();
            } catch (Exception ex) {
                log.error("net io excepiton", ex);
            }
        }
        return responseContent;
    }

    /**
     * 发送get请求
     * @param url
     * @return
     */
    public static String sendGetRequest(String url) {
        return sendGetRequest(url, "UTF-8");
    }

    public static String sendHttpPostRequest(String reqURL, String data) {
        HttpClient httpclient = new DefaultHttpClient();
        String respStr = "";
        try {
            HttpPost httppost = new HttpPost(reqURL);
            StringEntity strEntity = new StringEntity(data, "UTF-8");
            strEntity.setContentType("application/x-www-form-urlencoded");
            httppost.setEntity(strEntity);
            log.info(EntityUtils.toString(strEntity));
            log.info("executing request " + httppost.getRequestLine());

            HttpResponse response = httpclient.execute(httppost);
            HttpEntity resEntity = response.getEntity();

            if (resEntity != null) {
                log.info("返回数据长度: " + resEntity.getContentLength());
                respStr = EntityUtils.toString(resEntity);
                log.info("respStr " + respStr);
            }

        } catch (ClientProtocolException e) {
            log.error("sendHttpPostRequest : " ,e);
        } catch (IOException e) {
            log.error("sendHttpPostRequest : " ,e);
        } finally {
            httpclient.getConnectionManager().shutdown();
        }
        return respStr;
    }

    /**
     * 发送post请求
     * @param url
     * @param params
     * @return
     * @throws Exception
     */
    public static String sendHttpPostRequest(String url, Map<String, String> params) {
        String respStr = "";
        HttpClient httpclient = new DefaultHttpClient();
        httpclient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 10000);
        httpclient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000); 
        log.info("url: " + url);
        log.info("params: " + params);
        try {
            HttpPost post = new HttpPost(url);
            List<BasicNameValuePair> postData = new ArrayList<BasicNameValuePair>();
            for (Map.Entry<String, String> entry : params.entrySet()) {
                postData.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
            }
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postData, "UTF-8");
            post.setEntity(entity);
            HttpResponse response = httpclient.execute(post);
            HttpEntity resEntity = response.getEntity();
            if (resEntity != null) {
                log.info("返回数据长度: " + resEntity.getContentLength());
                respStr = EntityUtils.toString(resEntity);
                log.info("respStr " + respStr);
            }
        } catch (ClientProtocolException e) {
            log.error("sendHttpPostRequest : " +e);
        } catch (IOException e) {
            log.error("sendHttpPostRequest : " +e);
        } finally {
            httpclient.getConnectionManager().shutdown();
        }
        return respStr;
    }
    
    /**
     * 发送post请求
     * @param url
     * @param params
     * @return
     * @throws Exception
     */
    public static String sendHttpPostRequestToObject(String url, Map<String, Object> params) {
        String respStr = "";
        HttpClient httpclient = new DefaultHttpClient();
        httpclient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 10000);
        httpclient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000); 
        log.info("url: " + url);
        log.info("params: " + params);
        try {
            HttpPost post = new HttpPost(url);
            List<BasicNameValuePair> postData = new ArrayList<BasicNameValuePair>();
            for (Map.Entry<String, Object> entry : params.entrySet()) {
                postData.add(new BasicNameValuePair(entry.getKey(), entry.getValue().toString()));
            }
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postData, "UTF-8");
            post.setEntity(entity);
            HttpResponse response = httpclient.execute(post);
            HttpEntity resEntity = response.getEntity();
            if (resEntity != null) {
                log.info("返回数据长度: " + resEntity.getContentLength());
                respStr = EntityUtils.toString(resEntity);
                log.info("respStr " + respStr);
            }
        } catch (ClientProtocolException e) {
            log.error("sendHttpPostRequest : " +e);
        } catch (IOException e) {
            log.error("sendHttpPostRequest : " +e);
        } finally {
            httpclient.getConnectionManager().shutdown();
        }
        return respStr;
    }

    public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("amount", "1000");
        map.put("orderNo", "XEBEST20150413666666");
        map.put("status", "20");
        HttpRequestUtil.sendHttpPostRequest("http://192.168.26.1/cfca/test", map);
    }
}
分享到:
评论

相关推荐

    SQL数据库默认实例与命名实例的区别

    2. **命名实例**:命名实例的服务名称会根据实例名称进行定制,例如如果实例名称为`benet`,则服务名称显示为`MSSQL$BENET`。 - **优点**:命名实例允许在同一台服务器上安装多个独立的SQL Server实例,每个实例...

    sqlserver2008R2应用添加实例步骤

    **步骤2:选择“新建SQL Server独立实例”** - 在安装向导的主界面中,选择“新建SQL Server独立实例”。 - 点击“下一步”继续。 **步骤3:自动配置** - 安装向导会自动配置一些必要的选项,如服务账户、身份...

    oracle删除和重建实例

    2. 填写实例信息:填写实例信息,包括实例名、SID、数据库文件的路径等。 3. 配置实例参数:配置实例参数,包括字符集、国家语言、时区等。 4. 创建实例:使用 dbca 工具或手动创建实例,需要输入管理员密码和其他...

    SSH2框架搭建实例源码

    这个实例源码使用的是Spring 3.2、Struts2 2.3.4和Hibernate 4.2这三个框架的较新版本,提供了一个基础的用户登录和用户管理功能的实现。下面我们将详细探讨这些技术及其在项目中的应用。 **Spring框架**: Spring...

    OpenGL实例 OpenGL实例 OpenGL实例 OpenGL实例 OpenGL实例

    OpenGL实例 OpenGL实例 OpenGL实例 OpenGL实例 OpenGL实例

    Visual C# .NET精彩编程实例集锦

    实例2 如何使用信息提示控件 实例3 如何使用菜单控件 实例4 如何使用工具栏控件 实例5 如何使用状态栏控件 实例6 如何使用托盘控件 实例7 如何使用标签页控件 实例8 如何使用进度条控件 实例9 如何使用树视图控件 ...

    STM32实例程序 2.数码管

    STM32实例程序 2.数码管STM32实例程序 2.数码管STM32实例程序 2.数码管STM32实例程序 2.数码管STM32实例程序 2.数码管STM32实例程序 2.数码管STM32实例程序 2.数码管STM32实例程序 2.数码管STM32实例程序 2.数码管...

    QT5开发及实例配套源代码.zip

    QT5开发及实例配套[源代码] Qt是诺基亚公司的C++可视化开发平台,本书以Qt 5作为平台,每个章节在简单介绍开发环境的基础上,用一个小实例,介绍Qt 5应用程序开发各个方面,然后系统介绍Qt 5应用程序的开发技术,...

    数据结构实例(内含17个详细经典实例)

    数据结构实践教程:内含17个经典数据结构实例 根据五个不同数据结构,对每个结构都有2~4个经典实例。每个实例都有项目简介、设计思路、数据结构、完整程序、运行结果五个部分,可以直接拿来做一篇课程设计。实例名称...

    SolidWorks实例-100多个实例

    ### SolidWorks实例解析 #### 实例一:拉伸与倒角 **操作步骤:** 1. **拉伸圆柱:** 使用拉伸命令创建一个基本的圆柱体。 2. **倒内外角:** 对圆柱体进行内外倒角处理,增加设计细节。 3. **拉伸切槽:** 在圆柱...

    j2ee实例 j2ee实例j2ee实例

    J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司推出的用于构建企业级分布式应用程序的框架,它提供了服务器端的编程模型和运行环境,支持多种服务,如事务处理、安全、集群、数据库连接等。本实例集合将...

    《Visual Basic 2008应用程序开发实例精讲》全书所有实例程序源代码

    第2篇 数据库应用开发实例 第3章 家庭理财系统54 3.1 实例功能说明54 3.2 系统设计方案55 3.2.1 模块设计及开发环境55 3.2.2 系统结构图55 3.2.3 数据库设计56 3.3 相关技术点拨58 3.3.1 ado.net数据库访问技术58 ...

    opengl 实例实例实例实例实例

    opengl 实例实例实例实例实例opengl 实例实例实例实例实例

    labview55个经典实例

    2. **数据类型与操作**:实例中会涉及不同数据类型,如数值、字符串、布尔值等,以及如何进行数据转换、比较、运算等操作。 3. **VI(虚拟仪器)设计**:每个实例都是一个完整的VI,它们展示了如何布局前面板,设计...

    MCGS高级教程实例模板

    MCGS高级教程实例模板MCGS高级教程实例模板MCGS高级教程实例模板MCGS高级教程实例模板MCGS高级教程实例模板MCGS高级教程实例模板MCGS高级教程实例模板MCGS高级教程实例模板MCGS高级教程实例模板MCGS高级教程实例模板...

    java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java

    java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象与类实例java对象...

    activiti学习-使用activiti多实例任务实现会签

    ### Activiti多实例任务实现会签功能详解 #### 一、多实例用户任务的基本概念与配置 Activiti是一个开源的工作流引擎,它提供了一种灵活的方式来定义业务流程,并且能够支持复杂的业务逻辑处理。其中,多实例任务...

    C++编程实例100篇

    《C++编程实例100篇》是一本深入浅出的C++编程教程,它以实践为主导,通过丰富的实例帮助学习者掌握C++语言的基础和核心概念。这本书的每个实例都精心设计,旨在帮助初学者和有经验的开发者巩固和提升C++编程技能。 ...

    最新单片机仿真 8255并行口扩展实例

    最新单片机仿真 8255并行口扩展实例最新单片机仿真 8255并行口扩展实例最新单片机仿真 8255并行口扩展实例最新单片机仿真 8255并行口扩展实例最新单片机仿真 8255并行口扩展实例最新单片机仿真 8255并行口扩展实例...

    51单片机Proteus仿真实例 2×20串行字符液晶演示

    51单片机Proteus仿真实例 2×20串行字符液晶演示51单片机Proteus仿真实例 2×20串行字符液晶演示51单片机Proteus仿真实例 2×20串行字符液晶演示51单片机Proteus仿真实例 2×20串行字符液晶演示51单片机Proteus仿真...

Global site tag (gtag.js) - Google Analytics