Advertisement

HttpClient调用外部项目接口工具类示例

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
本工具类提供通过HttpClient访问外部系统API的功能示例,包括GET和POST请求方法,适用于Java项目的集成开发。 HttpClient是Apache Jakarta Commons子项目中的一个开源Http客户端实现工具库,支持HTTP1.1和2.0协议,并提供发送请求及接收响应的功能。 使用HttpClient的优点包括简化了Http请求的处理流程、提供了更好的性能与可靠性。它也支持HTTPS加密连接以及Cookies、Session和Authentication等功能。 下面是一个示例代码展示如何利用HttpClient来实现调用外部项目接口工具类: 首先,需要引入相关的依赖项: ```java import org.apache.http.NameValuePair; import org.apache.http.HttpEntity; 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.conn.ssl.DefaultHostnameVerifier; import org.apache.http.conn.util.PublicSuffixMatcher; import org.apache.http.conn.util.PublicSuffixMatcherLoader; 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; ``` 然后,可以创建一个名为HttpUtils的工具类来发送HttpGet和HttpPost请求: ```java public class HttpUtils { private static RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(15000) .setConnectTimeout(15000) .setConnectionRequestTimeout(15000) .build(); public static String sendHttpGet(HttpGet httpGet) { CloseableHttpClient httpClient = null; CloseableHttpResponse response = null; HttpEntity entity = null; String responseContent = null; try { httpClient = HttpClients.createDefault(); httpGet.setConfig(requestConfig); response = httpClient.execute(httpGet); entity = response.getEntity(); if (entity != null) { responseContent = EntityUtils.toString(entity, UTF-8); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (response != null) response.close(); if (httpClient != null) httpClient.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } return responseContent; } public static String sendHttpPost(String httpUrl, Map maps) { HttpPost httpPost = new HttpPost(httpUrl); List params = new ArrayList<>(); for (Map.Entry entry : maps.entrySet()) { params.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); } try { UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, UTF-8); httpPost.setEntity(entity); CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = httpClient.execute(httpPost); HttpEntity responseEntity = response.getEntity(); String responseContent = EntityUtils.toString(responseEntity, UTF-8); return responseContent; } catch (Exception e) { e.printStackTrace(); } return null; } } ``` 在上述示例中,我们创建了一个名为HttpUtils的工具类,并提供了两个方法:`sendHttpGet()` 和 `sendHttpPost()`。前者用于发送GET请求,后者用于提交POST数据。 使用HttpClient时需要注意以下几点: - 正确配置超时时间等参数; - 确保关闭连接以释放资源; - 适当处理可能出现的各种异常情况。 通过合理运用和设置这些特性,可以确保HttpClient的高效与稳定。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • HttpClient
    优质
    本工具类提供通过HttpClient访问外部系统API的功能示例,包括GET和POST请求方法,适用于Java项目的集成开发。 HttpClient是Apache Jakarta Commons子项目中的一个开源Http客户端实现工具库,支持HTTP1.1和2.0协议,并提供发送请求及接收响应的功能。 使用HttpClient的优点包括简化了Http请求的处理流程、提供了更好的性能与可靠性。它也支持HTTPS加密连接以及Cookies、Session和Authentication等功能。 下面是一个示例代码展示如何利用HttpClient来实现调用外部项目接口工具类: 首先,需要引入相关的依赖项: ```java import org.apache.http.NameValuePair; import org.apache.http.HttpEntity; 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.conn.ssl.DefaultHostnameVerifier; import org.apache.http.conn.util.PublicSuffixMatcher; import org.apache.http.conn.util.PublicSuffixMatcherLoader; 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; ``` 然后,可以创建一个名为HttpUtils的工具类来发送HttpGet和HttpPost请求: ```java public class HttpUtils { private static RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(15000) .setConnectTimeout(15000) .setConnectionRequestTimeout(15000) .build(); public static String sendHttpGet(HttpGet httpGet) { CloseableHttpClient httpClient = null; CloseableHttpResponse response = null; HttpEntity entity = null; String responseContent = null; try { httpClient = HttpClients.createDefault(); httpGet.setConfig(requestConfig); response = httpClient.execute(httpGet); entity = response.getEntity(); if (entity != null) { responseContent = EntityUtils.toString(entity, UTF-8); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (response != null) response.close(); if (httpClient != null) httpClient.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } return responseContent; } public static String sendHttpPost(String httpUrl, Map maps) { HttpPost httpPost = new HttpPost(httpUrl); List params = new ArrayList<>(); for (Map.Entry entry : maps.entrySet()) { params.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); } try { UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, UTF-8); httpPost.setEntity(entity); CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = httpClient.execute(httpPost); HttpEntity responseEntity = response.getEntity(); String responseContent = EntityUtils.toString(responseEntity, UTF-8); return responseContent; } catch (Exception e) { e.printStackTrace(); } return null; } } ``` 在上述示例中,我们创建了一个名为HttpUtils的工具类,并提供了两个方法:`sendHttpGet()` 和 `sendHttpPost()`。前者用于发送GET请求,后者用于提交POST数据。 使用HttpClient时需要注意以下几点: - 正确配置超时时间等参数; - 确保关闭连接以释放资源; - 适当处理可能出现的各种异常情况。 通过合理运用和设置这些特性,可以确保HttpClient的高效与稳定。
  • SAP ABAP Webservice分享
    优质
    本文章详细介绍了如何在SAP系统中使用ABAP语言调用Web服务(Webservice)的外部接口。通过具体实例讲解了整个过程中的关键步骤和代码示例,帮助开发者轻松掌握这一技术要点。 在SAP ABAP环境中调用外部Web服务是一项常见的任务,在系统间集成和数据交换场景下尤为常见。下面将详细介绍如何配置SAP ABAP以调用外部接口的Web服务。 首先,需要创建一个企业服务(Enterprise Service)消费者代理。为此,请使用SE80事务代码选择合适的开发类,并右键点击“创建” → “企业服务”。在随后出现的向导中,应选择“service consumer”,接着输入预先准备好的Web服务WSDL URL。设置前缀和开发类后,系统将自动生成一个与定义相符的服务消费者(例如ItemTransmitServiceWS),以及对应的类ZWSDL_CO_ITEM_TRANSMIT_SERVICE。 完成上述步骤之后,需要发布并激活创建的消费者代理。这包括修改releasestatus为“发布”,然后进行激活操作。此过程至关重要,因为它使服务对系统可用。 接下来,在TCODE: SOAMANAGER中进入服务管理界面,并配置之前创建的企业服务消费者代理。输入WSDL地址以及可能需要提供的Web服务用户名和密码以完成设置。 一旦配置完毕,系统将自动生成并激活一个逻辑端口,该端口作为ABAP程序调用外部Web服务的入口点。 在编写调用这些外部接口的ABAP代码时,请使用如`CREATE OBJECT lo_clientproxy EXPORTING logical_port_name = ZWSDL_CO_ITEM_TRANSMIT_SERVICE`这样的语句创建对象引用生成代理类。之后,根据需要填充输入参数(例如账号、令牌等),并利用CALL METHOD语句调用Web服务方法。 为了处理可能出现的异常情况,在实际编写代码时应使用TRY...CATCH结构来确保在发生错误时能够捕获和妥善处理它们。 总体来说,SAP ABAP中调用外部Web服务的主要步骤包括:创建消费者代理、配置逻辑端口、部署服务以及通过ABAP程序进行实际调用。掌握这些操作对于实现系统间集成至关重要,并且需要根据具体业务需求调整参数设置以确保稳定性和可靠性。
  • C#与顺丰快递(适于最新丰桥
    优质
    这段代码提供了一个使用C#语言实现与顺丰快递系统进行交互的工具类,特别针对最新的丰桥接口进行了优化和更新。它简化了开发者对接顺丰API的过程,提供了丰富的功能支持如查询订单、获取运单号等操作,并且确保了高效稳定的性能表现。无论是对物流系统的集成还是提高业务流程自动化效率都极具价值。 自己编写了对接顺丰接口的代码(但请注意,顺丰官网已停止提供此类服务,并将所有相关业务转交给了丰桥网站)。如果现在需要在网上实现与顺丰快递的服务对接,则必须直接使用由丰桥网提供的接口进行开发。下面分享的是我在处理运单查询时所编写的工具类,请参考丰桥网的相关文档来理解这段代码的用途和功能。
  • 使HttpClient第三方
    优质
    本指南详细介绍了如何利用HttpClient库来安全有效地调用和交互第三方API接口,涵盖从基础设置到高级应用的各项要点。 使用HttpClient调用公安部接口,并将返回的字符串转换为图片。
  • Java Axis Webservice
    优质
    本工具类旨在简化使用Java调用Axis Webservice接口的过程,提供了一系列便捷的方法来处理请求与响应,适用于需要集成外部Webservice服务的项目开发。 Java Axis 提供了直接调用WebService接口的工具类,无需根据WSDL文件生成客户端代码。该方法需要使用Axis相关库包,在测试过程中采用了Axis 1.4版本。附带一个示例:在引入Axis包后可以直接进行测试。
  • C# Genesis2000
    优质
    C# Genesis2000外部调试接口提供了一套强大的工具和方法,用于外部系统或程序对接Genesis2000系统的监控与调试工作。 Genesis2000 C#可外部调试接口包含了COM、VOF、VON、SUN_ON、SUN_OFF、PAUSE、INFO、INFO_P、INFO_TXT等功能。具体使用方法,请参考代码。
  • Java使HttpClient实现HTTPS
    优质
    本教程详细介绍如何在Java中利用HttpClient库安全地调用HTTPS接口,包括SSL证书配置和示例代码。 使用JAVA进行HTTPS接口调用可以通过HttpClient来实现。这种方法能够帮助开发者安全地发送HTTP请求并接收响应,在处理需要加密通信的场景下非常有用。在实际应用中,首先需要确保已经引入了支持SSL协议的相关库;然后设置好目标URL以及必要的头部信息和其他参数;接下来构建HttpPost或HttpGet等类型的请求对象,并通过HttpClient实例执行该请求获取到服务器返回的数据。 整个过程中需要注意的是要妥善处理可能出现的异常情况(如网络连接问题、证书验证失败等),以保证程序能够稳定运行。此外,根据具体需求还可以对HTTP响应进行解析和业务逻辑操作。
  • HTTP
    优质
    简介:本示例详细介绍了如何通过HTTP协议调用API接口,包括请求方法、URL构建及参数设置等关键步骤。 你提到的问题实际上是如何解析返回的JSON数据。具体的解析方法取决于你的实际情况。如果你使用了JQ(一种处理JSON的数据查询语言),它提供了方便的方法来解析JSON数据。如果没有使用JQ,也可以采用其他方式,例如利用字符串函数或正则表达式提取信息、将文本评估为JSON对象或者引入专门用于解析JSON的JavaScript脚本。 根据你的具体情况选择合适的方式,并进一步细化关键问题点进行搜索和研究相关具体方法。同时建议查看你使用的API是否提供了配套的解析工具,如果有,则优先使用这些官方提供的解决方案以确保兼容性和便捷性。
  • WebService
    优质
    简介:本文探讨了在不同项目间调用Web服务接口的方法与实践,涵盖了技术实现、安全性和性能优化等方面。 本段落主要介绍如何在Webservice中跨项目调用接口,并使用了XFire WSDL技术。 步骤如下: 1. 首先创建一个新项目。 2. 在src下新建两个文件: - 第一个是您想要访问的Web服务端口,例如ReleaseService。需确保该端口中包含的方法与目标Webservice中的方法一致; - 第二个是调用类。 3. 导入所需的jar包,并将其复制到lib目录中以避免引用问题。 以下是具体的实现代码: TestWebService.java ```java package com.isanta.webServiceTest; import java.io.InputStream; import java.net.MalformedURLException; import java.util.Properties; import org.codehaus.xfire.XFireFactory; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.service.binding.ObjectServiceFactory; public class TestWebService { public static void testWebService() throws MalformedURLException, Exception{ Properties pro = new Properties(); InputStream in = null; in = TestWebService.class.getResourceAsStream(/request.properties); pro.load(in); String url = pro.getProperty(url); //此处的参数可以从properties文件中读取,也可以通过方法传参 Service s=new ObjectServiceFactory().create(ReleaseService.class); XFireProxyFactory xf= new XFireProxyFactory(XFireFactory.newInstance().getXFire()); System.out.println(url=+url); ReleaseService releaseService = (ReleaseService)xf.create(s, url); String xMLstr = pro.getProperty(xMLstr); System.out.println(进入接口----------------->请求报文:+xMLstr); String st=releaseService.queryReceiptDatas(xMLstr); System.out.print(st); } } ``` 接下来,将项目打包成jar文件,并将其引入到需要调用的项目中。然后像正常代码一样进行调用: Test.java ```java import java.net.MalformedURLException; public class Test { public static void main(String[] args) throws MalformedURLException, Exception { TestWebService.testWebService(); } } ``` 以上就是通过XFire实现跨Webservice项目接口调用的方法。