日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

httpwebrequest超时时间timeout设置无效_【SpringBoot WEB 系列】RestTemplate 之超时设置...

發(fā)布時(shí)間:2025/6/17 javascript 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 httpwebrequest超时时间timeout设置无效_【SpringBoot WEB 系列】RestTemplate 之超时设置... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【SpringBoot WEB 系列】RestTemplate 之超時(shí)設(shè)置

一般來講我們?cè)L問外部資源時(shí),需要做一個(gè)保護(hù),比如最常見的添加一個(gè)超時(shí)設(shè)置,避免一直被阻塞,RestTemplate 可以通過SimpleClientHttpRequestFactory來處理超時(shí)設(shè)置

I. RestTemplate 超時(shí)設(shè)置

博文測(cè)試項(xiàng)目完全基于【W(wǎng)EB 系列】RestTemplate 基礎(chǔ)用法小結(jié)的項(xiàng)目環(huán)境,建議配合查看

基本環(huán)境:IDEA + maven + SpringBoot 2.2.1.RELEASE

1. 超時(shí)端點(diǎn)

添加一個(gè)超時(shí)模擬的端點(diǎn)如下

private?String?getHeaders(HttpServletRequest?request)?{
????Enumeration?headerNames?=?request.getHeaderNames();
????String?name;
????JSONObject?headers?=?new?JSONObject();while?(headerNames.hasMoreElements())?{
????????name?=?headerNames.nextElement();
????????headers.put(name,?request.getHeader(name));
????}return?headers.toJSONString();
}private?String?getParams(HttpServletRequest?request)?{return?JSONObject.toJSONString(request.getParameterMap());
}private?String?getCookies(HttpServletRequest?request)?{
????Cookie[]?cookies?=?request.getCookies();if?(cookies?==?null?||?cookies.length?==?0)?{return?"";
????}
????JSONObject?ck?=?new?JSONObject();for?(Cookie?cookie?:?cookies)?{
????????ck.put(cookie.getName(),?cookie.getValue());
????}return?ck.toJSONString();
}private?String?buildResult(HttpServletRequest?request)?{return?buildResult(request,?null);
}private?String?buildResult(HttpServletRequest?request,?Object?obj)?{
????String?params?=?getParams(request);
????String?headers?=?getHeaders(request);
????String?cookies?=?getCookies(request);if?(obj?!=?null)?{
????????params?+=?"?|?"?+?obj;
????}return?"params:?"?+?params?+?"\nheaders:?"?+?headers?+?"\ncookies:?"?+?cookies;
}@GetMapping(path?=?"timeout")public?String?timeOut(HttpServletRequest?request)?throws?InterruptedException?{
????Thread.sleep(60_000L);return?buildResult(request);
}

2. 超時(shí)設(shè)置

主要是通過設(shè)置SimpleClientHttpRequestFactory來設(shè)置超時(shí)

/**
?*?設(shè)置超時(shí)時(shí)間
?*/
public?void?timeOut()?{
????RestTemplate?restTemplate?=?new?RestTemplate();

????SimpleClientHttpRequestFactory?requestFactory?=?new?SimpleClientHttpRequestFactory();
????requestFactory.setConnectTimeout(1000);
????requestFactory.setReadTimeout(1000);
????restTemplate.setRequestFactory(requestFactory);
????long?start?=?System.currentTimeMillis();
????try?{
????????log.info("timeOut?start:?{}",?start);
????????HttpEntity?response?=
????????????????restTemplate.getForEntity("http://127.0.0.1:8080/timeout?name=一灰灰&age=20",?String.class);
????????log.info("timeOut?cost:{}?response:?{}",?System.currentTimeMillis()?-?start,?response);
????}?catch?(Exception?e)?{
????????log.info("timeOut?cost:{}?exception:?{}",?System.currentTimeMillis()?-?start,?e.getMessage());
????}
}

輸出如下:

(timeOut?start:?1593420406204

(timeOut?cost:1014?exception:?I/O?error?on?GET?request?for?"http://127.0.0.1:8080/timeout":?Read?timed?out;?nested?exception?is?java.net.SocketTimeoutException:?Read?timed?out

II. 其他

1. 源碼&系列博文

博文

  • 【W(wǎng)EB 系列】RestTemplate 之中文亂碼問題 fix
  • 【W(wǎng)EB 系列】RestTemplate 之自定義請(qǐng)求頭
  • 【W(wǎng)EB 系列】RestTemplate 基礎(chǔ)用法小結(jié)

源碼

  • 工程:https://github.com/liuyueyi/spring-boot-demo
  • 源碼: https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/221-web-resttemplate

1. 一灰灰 Blog

盡信書則不如,以上內(nèi)容,純屬一家之言,因個(gè)人能力有限,難免有疏漏和錯(cuò)誤之處,如發(fā)現(xiàn) bug 或者有更好的建議,歡迎批評(píng)指正,不吝感激

下面一灰灰的個(gè)人博客,記錄所有學(xué)習(xí)和工作中的博文,歡迎大家前去逛逛

  • 一灰灰 Blog 個(gè)人博客 https://blog.hhui.top
  • 一灰灰 Blog-Spring 專題博客 http://spring.hhui.top
一灰灰blog 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的httpwebrequest超时时间timeout设置无效_【SpringBoot WEB 系列】RestTemplate 之超时设置...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。