`
web_in
  • 浏览: 15604 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[实用工具类 / 方法] -- Java中通过HttpClient进行http接口调用请求 【难度 ★★★】

阅读更多
在自己开发的Java后台系统中,经常需要用到第三方的Http接口调用或者为解决跨域的http接口请求时,先用自己的Java后端服务调用远端的接口,获取到数据后,然后再给自己系统的前端进行Ajax调用。这里的关键技术就是Java对Http接口的访问,一般如果只是简单的运用,我们可以使用HttpClient辅助开发。
对于Maven架构的项目可以通过pom.xml文件中,加入以下内容:
<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.5.3</version>
</dependency>

如果是自行建立的Java Web项目,则需要引入相关的HttpClient的jar包,可以前往Apache官网的Http组件页download:
http://hc.apache.org/downloads.cgi
或者使用清华大学的镜像文件:
http://mirrors.tuna.tsinghua.edu.cn/apache//httpcomponents/httpclient/binary/httpcomponents-client-4.5.3-bin.zip

在项目中加入了这些Jar包之后,就可以使用HttpClient了。

参考代码如下:

public class HttpClientUtil {
     public static String server_addr = "http://localhost:8080/Server-api-simulator";
     public static boolean notifyServerJobStateChanged(String jobName, String jobGroup, String state, String triggerIds){
   
     CloseableHttpClient httpclient = HttpClients.createDefault();  
     HttpPost httpPost = new HttpPost(server_addr + "/UpdateReqJobStateSvlt");
     System.out.println(server_addr + "/UpdateReqJobStateSvlt");
     List<NameValuePair> nvps = new ArrayList<NameValuePair>(); 
     nvps.add(new BasicNameValuePair("jobName", jobName)); 
     nvps.add(new BasicNameValuePair("jobGroup", jobGroup));
     nvps.add(new BasicNameValuePair("state", state));
     nvps.add(new BasicNameValuePair("triggerIds", ""));
       
     try {
           httpPost.setEntity(new UrlEncodedFormEntity(nvps));
           httpclient.execute(httpPost); 
     } catch (UnsupportedEncodingException e) {
           e.printStackTrace();
     } catch (ClientProtocolException e) {
          e.printStackTrace();
     } catch (IOException e) {
         e.printStackTrace();
     } 
         return true;
     }
  
     public static void main(String[] args){
         notifyServerJobStateChanged("AAA", "BBB", "WAITING", "");
     }
}

分享到:
评论

相关推荐

    java_微信支付_统一下单工具类

    Java微信支付统一下单工具类是开发者为了简化微信支付接口调用流程而设计的一个实用类库。在实际开发中,对接微信支付API时,需要处理包括但不限于签名、验签、参数构建等一系列复杂操作。这个工具类的目标就是把...

    优秀的开源http框架Forest,通过简单配置复杂的http调用.docx

    在Spring Boot的启动类中,使用`@ForestScan`注解扫描包含接口的包,这样就可以通过Spring容器注入接口实例,像调用本地方法一样调用HTTP API。 ```java @SpringBootApplication @ForestScan(basePackages = ...

    ean-hotel-api-v3-r29-java-client:Java客户端,用于使用EAN的v3版本29 API

    它封装了HTTP请求,将复杂的API调用转化为简单的Java方法调用,降低了开发者的学习曲线和实施难度。这个库可能包含以下关键组件: 1. **认证机制**:处理EAN API所需的API密钥和身份验证过程。 2. **模型对象**:...

    多种commons类jar包

    在Java开发中,Apache Commons是一个非常重要的库集合,它提供了许多实用工具类,极大地简化了开发者的工作。这里的"多种commons类jar包"指的是Apache Commons项目中的三个特定组件:Commons BeanUtils、Commons ...

    HttpUtils.zip

    在Java开发中,网络请求是应用与服务器交互的基础,而HttpClient和OkHttp是两种常用的HTTP客户端库。`HttpUtils.zip`文件提供了一种便捷的方式来使用这两种工具,旨在简化开发过程,提升开发效率。下面我们将详细...

    hutool实战精品讲义

    在Java开发中,工具类扮演着至关重要的角色,它们提供了一系列实用的静态方法,方便开发者处理各种常见任务。Hutool就是这样一个全面的工具库,它覆盖了日期时间处理、字符串操作、文件操作、网络通信、加密解密、...

    TESTSYSTEM(JAVA).rar_java 考试系统_java 考试系统_java考试CS_客户端 服务器_考试 客户

    在客户端和服务器之间的通信,可以使用Socket编程实现,也可以借助于HTTP/HTTPS协议,利用Apache HttpClient或Spring Web的RestTemplate等工具进行API调用。对于大型系统,可能还需要考虑负载均衡和分布式部署,这时...

    Android平台下的新闻阅读器设计与开发.pdf

    在 Android 中,可以通过HttpURLConnection、HttpClient 或现代的OkHttp库进行网络请求。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于服务器与客户端之间的数据传输。Android 应用可使用...

    Mobiles-Alabama-Solution-:编程团队练习题

    在文件名"Mobiles-Alabama-Solution--master"中,"master"通常代表Git仓库的主分支,暗示这是一个持续更新和维护的项目,可能包含了不同难度级别的练习,从基础到进阶,适合不同程度的Java开发者进行学习和实践。...

Global site tag (gtag.js) - Google Analytics