Java 使用feign调用第三方API

一、添加Maven依赖

     	<dependency>
            <groupId>com.netflix.feign</groupId>
            <artifactId>feign-core</artifactId>
            <version>8.18.0</version>
        </dependency>
        <dependency>
            <groupId>com.netflix.feign</groupId>
            <artifactId>feign-jackson</artifactId>
            <version>8.18.0</version>
        </dependency>

二、添加配置文件

sewage:
  url: https://xxxxx.cn
  userId: xxxxxx
  userKey: xxxxx

三、添加对内调用接口

public interface SurfaceWaterApiDao {
    JSONArray getCycleNewDataByMn(String mn);
}

四、实现层(fegin初始化)

@Service
public class SurfaceWaterApiImpl implements SurfaceWaterApiDao{

    private static SurfaceWaterApi SURFACE_WATER_API;

    @Value("${surface-water.url}")
    protected String url;

    @Value("${surface-water.userId}")
    private String userId;

    @PostConstruct
    protected void init() {
        SURFACE_WATER_API = Feign.builder()
                .encoder(new JacksonEncoder()) // 编码方式
                .decoder(new JacksonDecoder())	// 解码方式
                .options(new Request.Options(3000, 3500))
                .retryer(new Retryer.Default(5000, 5000, 3))
                .target(SurfaceWaterApi.class, url);
    }


    @Override
    public JSONArray getCycleNewDataByMn(String mn) {
        return SURFACE_WATER_API.getCycleNewDataByMn(mn);
    }
}

五、使用Feign调用第三方API(GET、POST)

public interface SurfaceWaterApi {


    /**
     * 实时数据
     * @param mn
     * @return
     */

    @RequestLine("GET /BusinessService/MN_8051_MN/GetLatest8051?mn={mn}")
    @Headers({"Content-Type: application/json"})
    JSONArray getCycleNewDataByMn(@Param("mn") String mn);


    /**
     * 根据时段进行查询历史的周期数据
     * @param startTime
     * @param endTime
     * @return
     */

    @RequestLine("POST /BusinessService/MN_8051_MN/GetMN_8051_ExceptData?LHCodeID=&StartTime={startTime}&EndTime={endTime}&bException=true&bFilter=false&bFilterDel=false")
    @Headers({"Content-Type: application/json","Content-Length:18"})
    JSONArray getHistoryData(@Param("startTime") String startTime, @Param("endTime") String endTime,List<String> deviceList);

}

OK,齐活~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿小张丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值