`

httpclient4.5调用接口

    博客分类:
  • java
 
阅读更多

import net.sf.json.JSONObject;

import org.apache.commons.collections4.map.HashedMap;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class HttpUtil
{
/**
     * 获取接口返回值
     * @param url
     * @return
     * @see [类、类#方法、类#成员]
     */
    public static JSONObject getApiData(String url, List<BasicNameValuePair> paramList)
    {
        //这里开始用于httpclient3.1升级到4.5修改,如果有问题 将下面原来的实现方式还原
        JSONObject result = new JSONObject();
        CloseableHttpClient httpClient = null;
        CloseableHttpResponse response = null;
        HttpEntity entity = null;
        String responseContent = null;
        int code = -1;
        
        RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(10 * 1000).build();
        //创建请求
        HttpPost httpPost = new HttpPost(url);
        httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");//设置请求头
        try
        {
            httpPost.setEntity(new UrlEncodedFormEntity(paramList, "utf-8"));//设置请求参数
            httpPost.setConfig(requestConfig);//设置超时时间
            httpPost.releaseConnection();//这里应该是让连接可以重用
            // 创建默认的httpClient实例.  
            httpClient = HttpClients.createDefault();
            // 发送请求开始时间
            long starttime = System.currentTimeMillis();
            // 执行请求  
            response = httpClient.execute(httpPost);
            // 发送请求结束时间
            long endtime = System.currentTimeMillis();
            entity = response.getEntity();
            // 获取请求返回的状态码
            code = response.getStatusLine().getStatusCode();
            responseContent = EntityUtils.toString(entity, "UTF-8");
            result = JSONObject.fromObject(responseContent);
        }
        catch (UnsupportedEncodingException e)
        {
            LOG.error("Order find UnsupportedEncodingException error...");
        }
        catch (ClientProtocolException e)
        {
            LOG.error("Order find ClientProtocolException error...");
        }
        catch (IOException e)
        {
            LOG.error("Order find IOException error...");
        }
        finally
        {
            try
            {
                if (response != null)
                {
                    response.close();
                }
            }
            catch (IOException e)
            {
                LOG.error("response close error " + e.getMessage());
            }
            try
            {
                if (null != httpClient)
                {
                    httpClient.close();
                }
            }
            catch (IOException e)
            {
                LOG.error("httpClient close error " + e.getMessage());
            }
        }
        return result;
    }
}
分享到:
评论

相关推荐

    httpclient4.5 jar包

    HttpClient 4.5与Spring框架有良好的集成,可以通过Spring的`HttpInvoker`或`RestTemplate`来方便地调用HttpClient,简化代码。 7. **最佳实践** - 适当设置连接池大小,避免资源浪费。 - 使用HTTP/2和SPDY提升...

    HttpClient4.5

    在Java代码中,可以通过`org.apache.http.client.HttpClient`接口创建客户端实例,并调用其方法发起HTTP请求。 总结来说,HttpClient 4.5是一个强大且灵活的HTTP客户端库,它提供了一系列高级特性,用于高效、安全...

    httpclient 4.5 api文档

    ### httpclient 4.5 API文档知识点概览 #### 一、基础知识 ##### 1.1 请求执行 **1.1.1 HTTP请求** - **定义**:HTTP客户端通过发送HTTP请求来与服务器进行交互。 - **组成**: - 方法(GET、POST等); - URI...

    httpclient 4.5 相关jar包 (Spring mvc REST风格对外接口,HttpClient调用)

    这里我们关注的是HTTPClient 4.5版本,以及与Spring MVC REST风格接口的集成。在"Spring mvc REST风格对外接口,HttpClient调用"这个场景中,我们通常会用到一系列的jar包,其中包括`commons-beanutils-1.9.2.jar`。...

    httpclient-4.5所需jar包

    你可以通过创建`CloseableHttpClient`实例来初始化一个HttpClient对象,然后调用它的`execute`方法发送请求。 2. **HttpRequestBase**:这是一个抽象类,代表HTTP请求的基本元素,如GET、POST、PUT等。你可以继承这...

    HttpClient4.5所需jar包

    4. 执行请求,调用`HttpClient`的`execute`方法。 5. 处理响应,通过`HttpResponse`获取状态码、头部信息和响应体。 6. 关闭连接,释放资源。 在实际应用中,还应注意错误处理、重试策略、线程安全问题等。例如,...

    httpclient-4.5所需jar包.rar

    总的来说,HTTPClient 4.5是一个强大而全面的HTTP客户端库,适用于各种Java应用,无论是在Web服务调用、数据抓取还是API接口开发中都能发挥重要作用。正确理解和使用HTTPClient,可以显著提升你的网络编程能力。

    httpclient4.3登陆人人

    HttpClient是一个流行的开源Java库,它允许开发者执行HTTP请求并处理响应,广泛应用于网络爬虫、自动化测试和API调用等场景。 在描述中提到,“最新版httpclient自动登录人人代码”意味着这个压缩包包含了一个使用...

    httpclient4中文API和使用

    4. **执行请求**:调用`HttpClient`的`execute`方法发送请求,并获取`HttpResponse`对象。 5. **处理响应**:从`HttpResponse`中获取状态码、Header和响应体。`EntityUtils`类提供了一些实用方法,如`toString`用于...

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

    3. **执行请求**:调用`HttpClient`的`execute`方法,传入`HttpPost`对象,得到`HttpResponse`。这将返回服务器的响应,包括状态码、头信息和响应体。 4. **处理Cookie**:在响应中,服务器通常会通过`Set-Cookie`...

    httpclient所需jar包

    在Java开发中,HTTPClient是一个常用的库,用于执行HTTP请求,提供了一种高效、功能丰富的客户端编程接口。本文将深入探讨HTTPClient库以及如何在不使用Maven的情况下将其集成到项目中。 首先,我们来了解...

    HttpClient4.5.3资源

    在实际应用中,HttpClient可以用于爬虫、API调用、数据传输等多种场景。其丰富的功能和灵活的配置使其成为Java开发者的得力工具。通过深入研究源码,开发者可以了解其内部工作原理,进一步优化和定制自己的HTTP通信...

    httpclient jar包

    这个"httpClient jar包"包含了实现HTTP协议的类和接口,支持HTTP和HTTPS通信,允许进行POST和GET请求,是开发web服务接口、API调用等场景的常用工具。 1. **HTTPClient基本概念**: - HttpClient是一个基于...

    httpclient 全部jar包

    HTTPClient是Apache软件基金会开发的一个开源项目,它为Java开发者提供了一个高级的HTTP客户端接口。此库设计灵活,允许自定义请求和响应处理,适用于多种网络通信场景,如数据抓取、API调用等。 二、主要组件和...

    HttpClient教程

    - HttpClient 4.5及以上版本引入了异步API,通过`Future&lt;HttpResponse&gt;`或回调函数实现非阻塞操作。 9. **性能优化** - 使用连接池减少创建新连接的开销。 - 合理设置并发请求量,避免服务器压力过大。 - 关闭...

    httpclient

    9. **异步操作**:HttpClient 4.5及以上版本引入了异步API,允许开发者并发执行请求并处理结果,提高了效率。 10. **性能优化**:HttpClient支持连接池,可以配置最大连接数、超时时间等参数,以优化性能和资源利用...

    httpclient4.1.2 jar包

    《HttpClient 4.1.2:Java中的HTTP客户端库...尽管后续版本(如4.5.x)引入了更多改进,但HttpClient 4.1.2仍然在许多项目中发挥着重要作用。理解并熟练使用HttpClient 4.1.2,能有效提升Java应用程序的网络通信能力。

    httpclient4.4.1 and httpclient4.5.3.rar

    - **API一致性**:HttpClient 4.5.3对API进行了整理,使得不同版本之间的接口更一致,提高了代码的可维护性。同时,还增加了对Java 8特性的支持,如Lambda表达式。 - **模块化设计**:这个版本强调了模块化的架构,...

    httpClient组合包.zip

    HttpCore提供低级别的网络通信接口,HttpClient在其之上构建更高级别的HTTP客户端功能。HttpCore的更新主要关注性能优化和错误修复,确保HttpClient的稳定性和效率。 3. **httpmime-4.5.13.jar**:这个库专门用于...

Global site tag (gtag.js) - Google Analytics