• 请不要在回答技术问题时复制粘贴 AI 生成的内容
asanelder
V2EX  ›  程序员

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

  •  
  •   asanelder · Jun 17, 2021 · 4207 views
    This topic created in 1809 days ago, the information mentioned may be changed or developed.
    现在俺有一个第三方服务, 提供的是 HTTP 接口. 俺自己的服务是 Java 写的.
    如果直接使用 HTTP 相关库来调用吧, 好像好啰嗦, 好麻烦. 要是调用 HTTP 接口, 就是调用原生接口那样就好了.
    俺想封装一下, 有什么什么好的工具呢?

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

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

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

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

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


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

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

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


    @yitingbai #13 哈哈, 铁子给出了让人无法质疑的理由
    daiqiangbudainiu
        15
    daiqiangbudainiu  
       Jun 18, 2021
    rpc 了解一下?
    leonard916
        16
    leonard916  
       Jun 18, 2021
    我封装了一个原生的 HTTP 工具(还有别的 见: https://srl.cx/scomu )用起来就还好 如果你觉得麻烦就再套一层(框架不能提供太复杂的组合,会超啰嗦)。
    Yiso1573
        17
    Yiso1573  
       Jun 18, 2021
    伙计我上家公司就是做接口对接的,简单的你就直接找个 http 调用的工具类就行了比如前面提的 hutool 的工具类(它有很多好用的工具类,比如时间、缓存、反射),你也可以自己写。其实主要还是需要你根据接口去做封装和设计,我一般把接口调用的和实际业务的是拆分开的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   842 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 96821589 · 70ms · UTC 21:01 · PVG 05:01 · LAX 14:01 · JFK 17:01
    ♥ Do have faith in what you're doing.