feign 第一次调用超时_Feign ,3步搞定 HTTP 请求
今天要給大家介紹的主角是Feign 。
Feign是一個(gè)受到Retrofit,JAXRS-2.0和WebSocket啟發(fā)的Java到HTTP客戶端綁定器。 Feign的第一個(gè)目標(biāo)是降低HTTP API的復(fù)雜性。
官網(wǎng):https://github.com/OpenFeign/feign
1、首先導(dǎo)入maven坐標(biāo),我們選擇feign-jackson集成jackson解析json。10.X版本需要JDK1.8以上。
2、編寫(xiě)接口使用注解來(lái)操作Feign如何發(fā)送http請(qǐng)求。
public interface LemonAPI {@RequestLine("GET /user/formGet?username={username}&password={password}")String get(@Param("username") String username, @Param("password") String password); }3、在main方法中調(diào)用Feign.bulider()指定請(qǐng)求uri并且調(diào)用接口中的方法,最終在控制臺(tái)打印結(jié)果返回值。
public class App {public static void main(String[] args) {LemonAPI lemonAPI = Feign.builder().target(LemonAPI.class, "http://localhost:8899");String result = lemonAPI.get("abc", "123");System.out.println(result);} }在定義接口時(shí),需要使用Feign接口注解定義Http請(qǐng)求類(lèi)型、請(qǐng)求頭、請(qǐng)求體、請(qǐng)求參數(shù)等等。
例子1:
//請(qǐng)求方式POST,請(qǐng)求路徑/user/formPost @RequestLine("POST /user/formPost") //請(qǐng)求頭表單提交方式 @Headers("Content-Type: application/x-www-form-urlencoded;charset=UTF-8") //參數(shù)格式name1=value1&name2=value2,參數(shù)值由@Param對(duì)應(yīng)提供 @Body("username={username}&password={password}") String formPost(@Param("username") String username, @Param("password") String password);例子2:
//請(qǐng)求方式GET 請(qǐng)求路徑/user/formGet?name1=value1&name2=value2,參數(shù)值由@Param對(duì)應(yīng)提供 @RequestLine("GET /user/formGet?username={username}&password={password}") String formGet(@Param("username") String username, @Param("password") String password);//請(qǐng)求方式GET 請(qǐng)求路徑/find,參數(shù)值由@QueryMap 提供,自動(dòng)添加到uri后面 @RequestLine("GET /find") String find(@QueryMap Map<String, Object> queryMap);1、target() 指定接口類(lèi)型和URL地址返回接口Http代理對(duì)象,從而通過(guò)代理對(duì)象調(diào)用方法發(fā)送HTTP請(qǐng)求。
除了target方法之外,還有一些可選方法。如下:
2、client() Feign 在默認(rèn)情況下使用的是 JDK 原生的 URLConnection 發(fā)送HTTP請(qǐng)求,通過(guò)client方法可配置其他HTTP客戶端,如HttpClient、OkHttpClient、Http2Client等。
3、options() 指定連接超時(shí)時(shí)長(zhǎng)及響應(yīng)超時(shí)時(shí)長(zhǎng),單位毫秒。
4、retryer() 指定重試策略,參數(shù)分別是最小時(shí)間,最大時(shí)間,重連次數(shù)。
5、encoder() decoder() 指定編碼/解碼方式默認(rèn)是String,可配置Gson、Jackson、Sax等。
6、logger() logLevel() 指定日志和日志等級(jí),可配置SLF4J等。
注意:如果需要使用Jackson、SLF4J、Gson、Sax、OkHttpClient、Http2Client、HttpClient等需要導(dǎo)入對(duì)應(yīng)坐標(biāo)。
例子:
總結(jié)
以上是生活随笔為你收集整理的feign 第一次调用超时_Feign ,3步搞定 HTTP 请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux 共享内存_盘点那些linux
- 下一篇: grep 与条件_小白贴:使用 grep