V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
asanelder
V2EX  ›  程序员

如何封装 HTTP 接口, 供 Java 程序方面的使用?

  •  
  •   asanelder · 2021 年 6 月 17 日 · 3973 次点击
    这是一个创建于 1686 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在俺有一个第三方服务, 提供的是 HTTP 接口. 俺自己的服务是 Java 写的.
    如果直接使用 HTTP 相关库来调用吧, 好像好啰嗦, 好麻烦. 要是调用 HTTP 接口, 就是调用原生接口那样就好了.
    俺想封装一下, 有什么什么好的工具呢?

    俺听说过 feign, 这玩意能做这事不?
    17 条回复    2021-06-18 23:22:39 +08:00
    Veneris
        1
    Veneris  
       2021 年 6 月 17 日
    retrofit,一个 Android 上的 http 请求框架,不过我拿到后端服务用了
    itechify
        2
    itechify  
    PRO
       2021 年 6 月 17 日
    最终也是调 http 的库
    shenlanAZ
        3
    shenlanAZ  
       2021 年 6 月 17 日
    Hutool

    HttpUtil.get(url); / HttpUtil.post(url, paramMap);
    Dockerfile
        4
    Dockerfile  
       2021 年 6 月 17 日
    。。这太多了

    github.com/hsiafan/requests
    我喜欢这个
    micean
        5
    micean  
       2021 年 6 月 17 日
    自己写个动态代理也就分分钟的事。。。。
    codehelen
        6
    codehelen  
       2021 年 6 月 17 日
    hutool
    stardust21
        7
    stardust21  
       2021 年 6 月 17 日
    @Veneris 这个确实很方便
    MakeItGreat
        8
    MakeItGreat  
       2021 年 6 月 17 日 via Android
    你真的像编程随想………………
    真的像……
    clickhouse
        9
    clickhouse  
       2021 年 6 月 17 日
    feign 可以,底层也支持多种 http client
    crclz
        10
    crclz  
       2021 年 6 月 18 日
    自己封装一个类。这其实是关注点分离 + 分层。

    jdbc 或者 jpa 是怎么封装的、怎么处理的网络连接异常、怎么处理的对方返回的错误代码,你就怎样封装,最后可以得到和 jdbc 、jpa 一样简洁的编程体验。
    BBCCBB
        11
    BBCCBB  
       2021 年 6 月 18 日
    feign 和 retrofit2 差不多, 使用上比 retrofit2 还方便.. 不用返回 Call 对象.

    吸收了 retrofit2 的优点, 改进了缺点, 比如 retrofit2 只支持 okhttp..


    用 feign 就好了. 简单好用
    dayeye2006199
        12
    dayeye2006199  
       2021 年 6 月 18 日
    要是调用 HTTP 接口, 就是调用原生接口那样就好了

    你说的可能是 RPC
    yitingbai
        13
    yitingbai  
       2021 年 6 月 18 日   ❤️ 1
    @MakeItGreat 编程随想不会问这么简单的问题
    asanelder
        14
    asanelder  
    OP
       2021 年 6 月 18 日
    @Veneris #1
    @shenlanAZ #3
    @Jwyt #4
    @micean #5
    @codehelen #6
    @clickhouse #9
    @crclz #10
    @BBCCBB #11

    感谢几个老铁提供的思路, 俺试试


    @yitingbai #13 哈哈, 铁子给出了让人无法质疑的理由
    warcraft1236
        15
    warcraft1236  
       2021 年 6 月 18 日
    rpc 了解一下?
    leonard916
        16
    leonard916  
       2021 年 6 月 18 日
    我封装了一个原生的 HTTP 工具(还有别的 见: https://srl.cx/scomu )用起来就还好 如果你觉得麻烦就再套一层(框架不能提供太复杂的组合,会超啰嗦)。
    Yiso1573
        17
    Yiso1573  
       2021 年 6 月 18 日
    伙计我上家公司就是做接口对接的,简单的你就直接找个 http 调用的工具类就行了比如前面提的 hutool 的工具类(它有很多好用的工具类,比如时间、缓存、反射),你也可以自己写。其实主要还是需要你根据接口去做封装和设计,我一般把接口调用的和实际业务的是拆分开的。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3461 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 04:55 · PVG 12:55 · LAX 20:55 · JFK 23:55
    ♥ Do have faith in what you're doing.