`
ronon
  • 浏览: 193664 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

接口 两种调用http接口的方法

    博客分类:
  • java
 
阅读更多
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.entity.UrlEncodedFormEntity;
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.protocol.HTTP;
import org.apache.http.util.EntityUtils;
   
   /*
      第一种:httpClient 方式
      所需jar包: commons-httpclient-3.0.1.jar  及其他依赖jar包
    */
   public static void sendPostRequest1(Map<String,String> paramMap,String REQUEST_URL)
    {
        try {
            HttpClient httpclient = new HttpClient();
            httpclient.getParams().setHttpElementCharset("utf-8");
            httpclient.getParams().setContentCharset("utf-8");
            httpclient.getParams().setSoTimeout(10000);

            PostMethod post=new PostMethod(REQUEST_URL);
			//参数数组
            NameValuePair[] params=new NameValuePair[paramMap.size()];

            int index=0;
            for(String key : paramMap.keySet())
            {
                String value=paramMap.get(key);
                NameValuePair n=new NameValuePair(key,value);
                params[index]=n;
                index++;
            }
            /*
              另一种添加参数的方法:
              post.addParameter(key, value);
            */
            //设置请求参数
            post.setRequestBody(params);
			//开始请求
            httpclient.executeMethod(post);

			// 判断请求响应状态码,状态码为200表示服务端成功响应了客户端的请求 
            if(post.getStatusCode()==200)
	        {
				//获取返回消息字符串
			    String str=post.getResponseBodyAsString();
			    System.out.println(str);
	        }
           
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


   /*
      第二种:HttpPost 方式
      所需jar包: httpclient-4.3.5.jar、httpcore-4.3.2.jar  及其他依赖jar包
    */
    public static void sendPostRequest2(Map<String,String> paramMap,String REQUEST_URL)
    {
        try {

            CloseableHttpClient httpclient = HttpClients.createDefault();
            HttpPost httpPost = new HttpPost(REQUEST_URL);
            //设置请求和传输超时时间
			RequestConfig config=RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(5000).build();
			httpPost.setConfig(config);
            List<org.apache.http.NameValuePair> list=new ArrayList<org.apache.http.NameValuePair>();
            for(String key : paramMap.keySet())
            {
                String value=paramMap.get(key);
                BasicNameValuePair  n=new BasicNameValuePair(key,value);
                list.add(n);
           
            }
			//设置参数
            HttpEntity httpEntity=new UrlEncodedFormEntity(list,HTTP.UTF_8);
            httpPost.setEntity(httpEntity);
			//开始请求
            HttpResponse response=httpclient.execute(httpPost);

			// 判断请求响应状态码,状态码为200表示服务端成功响应了客户端的请求 
            if(response.getStatusLine().getStatusCode()==200)
            {
				//获取返回消息字符串
                String result=EntityUtils.toString(response.getEntity());
               
                System.out.println(result);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 

 

分享到:
评论

相关推荐

    两种接口的简单调用方法

    本篇文章将深入探讨两种接口的简单调用方法,包括在不同Activity间以及在同一Activity内调用接口。 首先,我们来看如何创建一个接口。在Java或Kotlin这样的语言中,接口定义通常如下: ```java public interface ...

    再谈kettle两种循环之-调用http分页接口循环获取数据

    本文将深入探讨“再谈kettle两种循环之-调用http分页接口循环获取数据”这一主题,旨在提供对循环Job、变量运用、调用HTTP分页接口、生成连续记录以及MD5加密等知识点的详细理解和实践指导。 首先,Kettle中的循环...

    C#动态载入的DLL,并调用成员方法(提供非接口及接口调用两种方式)

    C#动态载入DLL,DLL中类方法调用,及采用接口方式调用DLL的类方法和获取类成员属性。含示例代码及程序运行截图。

    Java 调用Http Rest接口 例子说明

    本文介绍了如何使用Java语言调用HTTP REST接口,包括GET和POST两种常见的请求类型。通过示例代码,我们可以看到如何使用Apache HttpClient库来实现这些请求,并注意到一些重要的细节,比如异常处理和资源释放等。...

    .net调用webservice接口例子

    在.NET框架中,调用Web服务接口...总结来说,.NET调用Web Service接口涉及到添加服务引用、生成代理类、配置连接、调用方法以及异常处理等步骤。在实际项目中,开发者需要结合具体的业务需求和接口文档进行细致的操作。

    C#调用Java接口演示

    5. **错误处理和异常转换**:由于C#和Java的异常处理机制不同,需要适当地处理和转换可能出现的异常,确保在两种语言间顺畅地传递错误信息。 总结来说,C#调用Java接口是一个相对复杂的过程,需要对Java和.NET平台...

    c#接口调用案例

    在这个"**c#接口调用案例**"中,我们将探讨如何创建接口,实现接口,并在实际应用中调用接口方法。 首先,接口通过`interface`关键字声明,它只包含方法签名、属性和事件,而不包含任何实现细节。例如: ```csharp...

    DELPHI 7 调用 JAVA 接口

    在IT行业中,跨语言通信是...这为混合编程提供了可能,允许开发者充分利用两种语言的优点,如Delphi的快速Windows开发和Java的跨平台能力。在实际应用中,可能还需要处理异常、内存管理等问题,以确保稳定性和安全性。

    浅谈java调用Restful API接口的方式

    同时,需要注意到HTTPS的处理,使用证书认证和跳过认证两种方式,可以根据项目的需求选择合适的方式。 在本文中,我们还讨论了使用HttpClient时的证书认证和跳过认证问题,并提供了相关的代码示例。通过这些示例,...

    Java调用WebService接口的方法

    在Java编程中,调用Web服务接口是一种常见的任务,尤其是当需要实现跨平台通信或集成不同系统时。本文将深入探讨如何使用Java调用WebService接口,以实例分析有参方法Add的使用技巧。 首先,我们需要了解WebService...

    用java调用.net接口的方法

    标题提到的“用java调用.net接口的方法”就是解决这个问题的一种技术实践。以下将详细讲解三种主要的实现方式,以及如何通过提供的源代码进行操作。 首先,我们要理解Java和.NET之间的互操作性通常依赖于Web服务...

    c#接口调用方法展示

    在C#编程语言中,接口(Interface)是一种定义行为规范的类型,它允许类或结构体实现一组预定义的方法、属性、索引器和事件。接口调用是面向对象编程中一个重要的概念,用于实现多态性和代码复用。本篇文章将深入...

    详细说明淘宝支付接口的调用过程

    - 商家网站可以通过此接口提供担保交易和即时到账交易两种选择,以满足不同买家的需求。 - 这个接口特别适用于防止钓鱼网站,确保交易安全。 - 同样提供不同语言的代码实例供开发者下载和集成。 - 更新后的版本...

    泛微 9.0 rest接口调用说明

    泛微9.0 REST接口调用是一个用于与泛微协同办公系统进行交互的重要技术,它允许开发者通过HTTP请求来执行各种操作,如注册、获取访问令牌、创建流程以及实现单点登录。下面是这些知识点的详细说明: 1. **注册接口*...

    ketlle传动态参数调用http post接口入库.zip

    在这个场景中,我们关注的是如何利用Kettle传递动态参数并调用HTTP POST接口将数据入库。下面将详细阐述这个过程。 1. **Kettle简介** Kettle是一款开源的ETL工具,它提供了图形化的界面,使得用户可以通过拖拽和...

    java调用soap接口案例

    Java调用SOAP(Simple Object Access Protocol)接口是Web服务交互中的常见操作,SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。本案例主要关注如何使用Java来实现SOAP请求并获取响应,具体我们...

    动态发布rest接口及服务调用

    例如,使用Jersey的`Client`和`WebTarget`可以这样调用接口: ```java Client client = ClientBuilder.newClient(); WebTarget target = client.target("http://localhost:8080/myresource"); Response response = ...

    C++库封装JNI接口-实现java调用c++

    在跨平台的软件开发中,有时我们需要...这个过程需要理解Java和C++之间的数据类型转换,以及如何在两种语言之间传递参数和返回值。熟练掌握JNI可以极大地扩展Java应用的功能,尤其是在需要高性能计算或利用硬件特性时。

    PHP调用java类的两种方法

    本文主要讨论的是如何在PHP中调用Java类的两种方法,这对于融合这两种技术的优势具有重要意义。 首先,我们可以使用PHP的Java扩展模块。这个扩展允许PHP直接创建和操作Java对象,就像操作PHP类一样。例如,通过`new...

Global site tag (gtag.js) - Google Analytics