经验分享:使用HttpClient做远程方法调用

使用HttpClient实现调用DeepSeek的API接口 在 C# 中,HttpClient 是一个强大的类,用于发送 HTTP 请求并接收 HTTP 响应。它是现代 .NET 应用程序中与 Web API、REST 服务或其他 HTTP 端点交互的主要方式。HttpClient 支持同步和异步操作,并提供了丰富的功能来管理 HTTP 通信。 阅读详情

     近日完成一个系统,是从一个庞大的母系统中剥离出来的,因此不可避免地要调用母系统的API。我的开发和UT分两步走的,边界部分的代码使用变量devModel隔开(if ...else...)。具体是:

     1、本机开发和UT阶段(devModel=true)。引用母系统的interface.jar,当需要使用母系统的实现类时,在test-src包中实现接口,只编写几个使用到的方法。

     2、集成测试阶段(devModel=false)。因为母系统非常混杂、jar和xml的依赖根本无法准确地分割,而且又没有开发webService,这就使得任何引用母系统jar的企图都变得不可能。在最少引进其他技术和framework、不增加软硬件开销的情况下(例如可以使用spring-mdp+mq),我只得硬着头皮想想能否通过纯JavaAPI的方式作远程调用。于是想到了Apache HttpClient,因为我知道,其实许多的webservice实现都是基于HttpClient的。

      有了想法,立刻动手尝试。

      1) xxx-beanName.properties 配置目标系统中使用到的母系统Spring容器中Service接口的BeanId。

      2)新增一个母系统代理类 XXXServiceInvokerImpl,该类按照母系统Service接口的样式定义需要调用的方法,将beanName、methodName、args作为HttpClient的post参数提交,参数的序列化采用json格式。

        3)往母系增加一个页面yyyCalled.jsp,该页面通过request.getParameter()获取目标系统提交的参数,通过Spring的WebApplicationContext能够轻易地得到Bean上下文,这样就成了本地接口的调用,完成后将结果以Json输出到out中。 

 

      总结:这样一来,我的子系统就摆脱了母系统的种种依赖和本事jar版本升级的烦恼,而且对于母系统的开发者而言,也不用为我作任何工作(写ws),我侵入的代码仅仅是一个jsp和3~4的jar包。

      也许参数和结果的序列化使用json并不是最好的方案,后续再做研究。

使用Httpclient调用API的一些个人见解(返回的json) 大家好,博主最近在做一个通过Httpclient调用API的项目,个人感觉Httpclient调用API的话还是挺好用的所以把自己的调用方式方法写下来希望能帮助大家。 阅读详情

相关推荐

httpclient调用京东万象数字营销频道新闻api实例

本人在使用httpclient做练习的时候,偶然发现京东万象上有一个免费的频道新闻调用api,故尝试之,因为官网文档只给出的java代码都是封装后的,所以我自己写了一遍,又写了一些注释。分享代码,供大家参考。 下面是具体的调用代码: 1publicvoidtestDemo()throwsJSONException,UnsupportedOperationException,IOException{ 2Stringurl="https://way.jd.com/j...

程序员-小枫的博客 2022

WebDAV客户端开源项目指南及问题解决方案

WebDAV客户端开源项目指南及问题解决方案 项目基础介绍 WebDAV Client是一款由C#编写的异步跨平台WebDAV客户端库,适用于.NET Core及其相关运行时环境,包括.NET Framework 4.5+、Mono、Xamarin和UWP。该项目遵循MIT许可协议,并通过NuGet包管理器可轻松集成到您的应用中。它设计用于全面支持RFC4918规范,提供了与WebDAV服务器交互...

gitblog_01254的博客 1105

ESP8266开发之旅 网络篇⑨ HttpClient——ESP8266HTTPClient库的使用

1. 前言     在前面章节的博客中,博主介绍了ESP8266WiFi库 Tcp client的用法,并模拟了Http请求。但是,可以看出通过WiFiClient模拟Http请求,我们需要自己拼装Http请求协议,稍微不小心就很容易拼接错误。     那么有没有针对Http请求操作的库呢?答案肯定是有的,这就是博主本篇需要跟大家讲述的知识——ESP8266HTTPClient库。     请注意...

单片机菜鸟哥的博客 3万+

httpclient远程调用

使用httpclient进行远程调用,需要的maven pom: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5</version> </dependency>代码如下:im

淡淡的倔强的博客 3206

HTTP POST接口带参数的HttpClient请求方法和调用

HTTP POST接口带参数的HttpClient请求方法和调用

fen_fen的专栏 3606

锐捷交换机路由器配置全攻略:从基础命令到高级功能(附常用命令速查表)

本文提供锐捷交换机路由器配置全攻略,涵盖从基础命令到高级功能的详细指南,包括VLAN划分、DHCP配置、链路聚合等实用技巧,并附常用命令速查表,帮助网络管理员快速掌握锐捷设备运维。

weixin_29285605的博客 518

HttpClient远程调用接口

&lt;dependency&gt; &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt; &lt;artifactId&gt;httpclient&lt;/artifactId&gt; &lt;version&gt;4.5.3&lt;/version&gt; &lt;/dependency&gt

freeOfFlying的博客 1662

InfiniBand(IB)实战指南:从硬件配置到性能优化

本文是一份详尽的InfiniBand实战指南,涵盖从硬件选型、部署到驱动配置、性能优化的全流程。重点解析了InfiniBand作为AI训练与高性能计算(HPC)核心网络的优势,特别是其支持的RDMA技术如何实现微秒级低延迟。文章提供了硬件匹配、NCCL压测、内核参数调优及在PyTorch分布式训练中启用IB的实操步骤,旨在帮助工程师构建和优化高性能计算集群。

mqtt6iot的博客 581

基于http协议实现RPC远程调用

今天简单说一下基本Http协议来实现RPC框架~ 基于Http协议实现RPC框架: 优点: 1、简单、实用、开发方便   缺点: 1、性能不是很稳定,在海量数据时,完全顶不住,容易宕机 2、因为不是走的注册中心,不便于维护、监控以及统计分析   但是对于大多数公司而言,不会又像淘宝、京东那样大的数据量,所以基于Http协议的RPC,实现多个系统间的解耦,还是很实用的~ 下面,我...

weixin_34367257的博客 873

在Ubuntu22.04.2远程服务器上搭建OHIF+Orthanc

在Ubuntu远程服务器上不翻墙,但是本地windows需要科学上网开始之前,首先在终端输入export -p查看是否有代理端口如下如果有就关了,输入如下命令。

weixin_51116549的博客 1337

gradle报错:A problem occurred configuring root project ‘My Application‘.

即使翻译了,我开始也看不懂,到处找网上教程,但都是改环境变量。马虎的我即使看了很多遍,改了很多遍也没反应过来,今天第一次搞gradle,突然就报错了,打印出。好了我就继续看项目了。

m0_59878789的博客 4091

基于HTTP的远程服务调用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33828101的博客 959

USB之ch376s数据手册

         最近师兄交给我一个项目,虽说刚学嵌入式起步,但上手一个项目怎说都是最好的快速学习方式。因为刚了解ch376s管理U盘的数据,所以先是看了ch376s的数据手册。那我就把数据手册直接放上来吧。。。。      1、概述 CH376 是文件管理控制芯片,用于单片机系统读写 U 盘或者 SD 卡中的文件。 CH376 支持 USB 设备方式和 USB 主机方式,并且内置了 USB 通...

iBGG的博客 6004

java中使用HttpClient调用接口

java中使用HttpClient调用接口 1.HttpClient 提供的主要的功能 (1)实现了所有 HTTP 的方法(GET,POST,PUT,DELETE 等) (2)支持自动转向 (3)支持 HTTPS 协议 (4)支持代理服务器等 直接言归正传了!!!!上代码 public static String sendPutForm(String url, Map<String,String> map, String encoding) throws ParseException, I

Spring丶王不正-传记 2495

ArcGIS实验教程——实验二十五:大型商场选址经典案例

本实验基于ArcGIS平台进行商场选址分析,综合考虑道路、居民点、停车场和已有商场四个影响因素。通过缓冲区分析建立各要素的影响范围(道路50米、居民点100米、停车场100米、已有商场500米),采用叠加分析中的相交和擦除运算确定最优选址区域。实验建立了区位评价体系,通过属性赋值(1/-1)和联合运算生成综合评价结果,并实现分级可视化显示。注意事项包括距离参数设置对结果的影响以及正确选择空间分析工具。该流程为商业选址提供了科学的GIS解决方案。

智慧空间实验室 1万+

华为OD机试 - 取出尽量少的球 - 感谢@吴修柯反馈(Python/JS/C/C++ 双机位A卷 200分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。感谢@吴修柯反馈,2025-03-22,A卷200分考试真题。某部门开展 Family Day 开放日活动,其中有个从桶里取球的游戏。有 N 个容量一样的小桶等距排开,且每个小桶都默认装了数量不等的小球,每个小桶装的小球数量记录在数组 bucke

学Java,找哪吒 1485

HttpClient工具类

最近在工作中需要在后台调用短信接口,经过研究决定使用HttpClient,自己封装了一个HttpClient工具类,简单轻松的实现get,post,put和delete请求,希望分享给大家。 1. 什么是HttpClient HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 jav...

ThinkWon的博客 3万+

基于 Google Colab 的 mask rcnn 训练自己的数据集(以实例分割为例)

详细步骤1 数据集的制作1.1 数据标注1.2 生成数据集2 环境的搭建2.1 搭建流程2.2 注意事项(报错)3 开始训练4 可视化4.1 修改webcam.py文件4.2 进行可视化5 参考文章 1 数据集的制作 1.1 数据标注 使用 labelme=4.5.6 版本进行标注,标注文件指定到保存图片的路径下,也就是json文件和jpg文件放在同一个文件夹里 1.2 生成数据集 先手动划分训练集和测试集(包括图像和标注文件),然后分别整合它们的标注信息,参考代码:1_ships_to_coco.py

G果的博客 8002

HttpClient的使用与连接资源释放

文章目录HttpClient一、请求类型二、使用依赖三、参考文档四、使用4.1 获取`httpClient`4.2 相关配置4.2.1 HttpClientConnectionManager4.2.2 RequestConfig4.3 使用示例:GET五、问题探讨5.1 关闭5.2 不关闭5.3 response问题:消费不彻底问题:消费彻底问题:关闭资源5.4 httpClient5.4.1 httpClient.close5.4.2 如何高效获取和使用httpClient1. 使用时生成2.连接池获取3

qq_43429919的博客 9948

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HttpClient调用

httpclient调用

真正的大师永远怀着一颗学徒的心 1751

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java使用HttpClient调用rest接口上传下载文件

最近接到了做在线文档编辑的需求,普通的rpc接口比如dubbo或者spring cloud的feign对文件流操作支持并不太好,所以用原生的httpClient先写一个出来。 上传文件 // upload_url为上传文件的接口调用地址 HttpPost httpPost = new HttpPost(upload_url); // 使用try resource进行httpClient...

lvqinglou的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C++使用libcurl做HttpClient

C++使用libcurl做HttpClient 分类: 基础技术分享2012-06-14 19:25 1469人阅读 评论(3) 收藏 举报     当使用C++做HTTP客户端时,目前通用的做法就是使用libcurl。其官方网站的地址是http://curl.haxx.se/,该网站主要提供了Curl和libcurl。Curl是命令行工具,用于完成FTP, FTPS, H

太极语言 2221

c# 使用HttpClient的post,get方法传输json

微软文档地址https://docs.microsoft.com/zh-cn/dotnet/api/system.net.http.httpclient?view=netframework-4.7.2,只有get。post 的方法找了白天才解决 using System; using System.Collections.Generic; using System.Threading; using...

zanllp的博客 4万+

开发远程调用接口_JAVA远程服务调用篇RESTFUL接口调用篇

以前曾经分享过JAVA远程服务调用篇相关内容,今天给这个系列再补一篇文章,就是restful接口的调用。是后端调用哈,前端的话一般是ajax调用后台接口。本次介绍三种方式:    1.HttpURLConnection实现    2.HttpClient实现    3.Spring的RestTemplate一、构造服务端package com.demo.restful.s...

weixin_42568512的博客 1145

C#调用HunyuanOCR接口示例代码分享(基于HttpClient)

通过HttpClient实现C#与腾讯HunyuanOCR的高效对接,适用于金融、医疗等企业场景。支持本地部署、高精度识别与灵活扩展,结合超时控制、异常处理和性能优化策略,构建稳定可靠的智能文档处理系统。

weixin_35756690的博客 1009

SpringBoot远程接口调用-RestTemplate使用

在web服务中,调度远程url是常见的使用场景,最初多采用原生的HttpClient,现采用Spring整合的RestTemplate工具类进行.实操如下:   1. 配置   主要用以配置远程链接的相关参数. @Configuration public class RestTemplateConfig { @Bean public RestTemplate restTe...

疯猫 2731
上一篇: SmartTable露个脸
下一篇: 辞旧迎新
treeClimber
博客等级 码龄24年 16粉丝 144原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值