`

webService请求 httpclient工具类

    博客分类:
  • java
阅读更多

在项目中经常会请求别人的接口,所以经常会用到httpclient工具类,下面是我写的一个简单的工具类

 

首先引包,因为是maven的项目,所以直接在pom.xml中新增两个依赖,

 <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.1</version>
        </dependency>

 很多人自己写工具类,获取上网扒的别人的工具类

都报错,很多时候就是因为你jar包的版本不同导致的

 

package com.wonder.Util;

import org.apache.http.NameValuePair;
import org.apache.http.client.config.CookieSpecs;
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.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.CookieSpec;
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;
import org.apache.http.HttpEntity;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * Created by Guozhijie on 2016/9/21.
 */
public class HttpClientUtil {
//post 请求
    public static String doPost(String url, Map<String,String> map){
        String result = null;
        CloseableHttpClient httpClient= HttpClients.createDefault();
        CloseableHttpResponse response=null;
        HttpPost httpPost=new HttpPost(url);
        try{
            //设置参数
            List<NameValuePair> list = new ArrayList<NameValuePair>();
            Iterator iterator = map.entrySet().iterator();
            while(iterator.hasNext()){
                Map.Entry<String,String> elem = (Map.Entry<String, String>) iterator.next();
                list.add(new BasicNameValuePair(elem.getKey(),elem.getValue()));
            }
            if(list.size() > 0){
                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,"UTF-8");
                httpPost.setEntity(entity);
            }
             response = httpClient.execute(httpPost);
            if(response != null){
                HttpEntity resEntity = response.getEntity();
                if(resEntity != null){
                    result = EntityUtils.toString(resEntity);
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        finally {
            try{
                response.close();
                httpClient.close();
            }catch (IOException e){

            }
        }
        return null;
    }

    //get请求
    public static String get(String path){
        RequestConfig config=RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD).build();
        CloseableHttpResponse response=null;
        CloseableHttpClient httpClient=HttpClients.createDefault();
        HttpGet httpGet=new HttpGet(path);
        try{
            response=httpClient.execute(httpGet);
            HttpEntity entity=response.getEntity();
            String responseText=EntityUtils.toString(entity);
            EntityUtils.consume(entity);
            return responseText;
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try{
                response.close();;
                httpClient.close();
            }catch (IOException e){

            }
        }
        return null;
    }

}

这样在你webservice请求的时候就可以直接用了

 

分享到:
评论

相关推荐

    webservice接口调用工具类依赖jar包

    WebService接口调用工具类是Java开发中常见的一种技术,用于与远程服务进行通信,尤其在集成不同系统或服务时非常关键。在这个场景中,"webservice接口调用工具类依赖jar包"指的是为了实现对WebService接口的调用,...

    java 调用 webService工具类

    总的来说,"java 调用 webService工具类"是一个用于简化Java应用程序调用SOAP WebService的实用工具,它封装了请求构建、发送、响应处理等复杂流程,让开发者能更专注于业务逻辑而不是底层通信细节。了解并熟练使用...

    java 调用webservice使用HttpClient和XFire两种方式

    在Java开发中,有时我们需要与外部服务进行交互,如发送短信、获取数据等,这时就会用到Web Service。本文将详细介绍如何使用...在处理短信接口这类服务时,理解并熟练掌握这两种工具,能有效提高开发效率和代码质量。

    httpclient实现webservice客户端

    此外,HttpClient还提供了许多工具类和拦截器,使得调试和优化HTTP通信变得容易。 总结来说,HttpClient是Java开发中实现WebService客户端的理想选择,它提供了丰富的功能和易用的API。通过理解HttpClient的工作...

    REST WebService 调用工具类

    相信大家在调用rest webservice通常使用httpclient.该示例代码是使用httpconnection的形式,以POST和GET两种方式提交调用REST WebService。在项目中一直使用的工具类,分享给大家

    webservice调用实例,通过HttpClient调用

    接下来,我们将创建一个`WebServiceUtil`类,这个类将封装Web服务调用的逻辑。首先,定义一个方法用于发送GET请求: ```java import org.apache.http.HttpEntity; import org.apache....

    C#Post带参数请求+WebService接口.zip

    调用WebService接口在C#中主要通过生成代理类完成,这通常是通过添加服务引用或者使用`svcutil.exe`工具生成。生成的代理类会包含对服务方法的调用,就像调用本地方法一样简单。 结合压缩包中的示例,你将能够学习...

    webservice客户端请求, 以及解析xml

    接下来,`Dom4jUtil.java`可能是一个工具类,用于解析返回的XML响应。Dom4j是一个Java库,它提供了简单且灵活的方式来处理XML文档。在Web服务的响应通常是XML格式时,我们需要将其解析为可操作的数据结构。以下是一...

    WebService通用調用方式及源碼

    这意味着,无论你面对的是哪种类型的WebService,都可以使用这些工具类来进行调用,而不需要针对每个具体的WebService进行单独的适配。这样的通用性大大提高了开发效率,降低了维护成本。 描述中提到的"提供一個...

    WebService手写简单案例

    例如,可以使用JAX-WS的`wsimport`工具生成客户端代码,或者直接使用SOAP请求库如Apache HttpClient发送POST请求。 在压缩包中的"手写的案例"可能包含了上述步骤的源代码示例,包括服务端的实现、WSDL文件以及可能...

    HttpClient 4.3教程.docx

    HttpClient提供URIBuilder工具类来简化URIs的创建和修改过程。 HttpClient的范围 * HttpClient支持基本的HTTP协议,还支持HTTP-aware客户端程序,如web浏览器,Webservice客户端,以及利用或拓展HTTP协议的分布式...

    拼接xml调用webservice

    8. **工具与框架**:现代开发中,有许多工具和框架可以帮助简化XML拼接和Web Service调用,如Java的Apache Axis、CXF,C#的Wsdl.exe或SvcUtil.exe,它们可以自动生成客户端代理类,使得调用Web Service就像调用本地...

    HttpGet 获取webservice 数据

    在实际项目中,"WebServiceTest"可能是项目中一个专门用于测试WebService调用的类或者模块。这个类可能包含了不同的HttpGet请求,用于测试不同接口的功能和性能。测试通常包括正常情况下的调用,以及异常处理,如...

    基于.net环境的WebService开发资料

    - .NET提供了许多类库用于调用WebService,如System.Web.Services.Protocols.SoapHttpClientProtocol,或者更现代的HttpClient类。开发者可以通过这些类创建代理对象,然后像调用本地方法一样调用WebService。 9. ...

    .Net动态调用WebService

    总结,.NET动态调用WebService涉及的关键技术包括SOAP协议的理解、选择合适的调用类(如SoapHttpClientProtocol或HttpClient)、数据序列化和反序列化、异常处理以及安全措施。了解并掌握这些知识点,将使你在开发中...

    c#调用webservice技术10分钟了解全貌

    1. **生成代理类**:使用.NET Framework提供的工具(如`svcutil.exe`)从WSDL文件自动生成代理类,这些类可用于调用WebService中的方法。 2. **手动创建SOAP请求**:虽然不常见,但在某些情况下可能需要手动构造SOAP...

    httpclient.zip

    6. **EntityUtils**:这个工具类帮助我们从HttpResponse中提取和处理实体内容,例如读取响应体的字符串或字节。 7. **Cookie管理**:HTTPClient支持处理cookies,以便在多次请求之间保持会话状态。CookieSpec和...

    C#调用webservice

    2. **手工创建代理类**:没有WSDL时,你需要手动编写服务的代理类,定义接口和方法,然后使用HttpClient或者WebRequest类来构造和发送SOAP请求。这需要对SOAP消息结构有深入了解。 3. **使用第三方库如SoapCore或...

    java调用webservice工程

    - **生成客户端代理类**:使用wsimport工具,根据WebService的WSDL(Web Service Description Language)文件生成客户端代理类。 - **实例化代理类**:创建代理类的实例,这个实例代表了远程的WebService服务。 -...

    Labview创建webservice与C#进行简单的http通信(post,get)

    - 在C#环境中,使用HttpClient类或者WebClient类来发起HTTP请求。HttpClient更为现代且推荐用于.NET框架的新项目。 - 对于GET请求,使用HttpClient的GetAsync方法,提供Web服务的URL,获取响应。 - 对于POST请求...

Global site tag (gtag.js) - Google Analytics