最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

NoHttpResponseException異常解決優(yōu)化HttpClient配置以避免連接問題

 更新時(shí)間:2023年10月12日 09:23:33   作者:codecraft  
這篇文章主要為大家介紹了NoHttpResponseException異常解決,優(yōu)化HttpClient配置以避免連接問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

本文主要研究一下HttpClient的NoHttpResponseException

NoHttpResponseException

org/apache/http/NoHttpResponseException.java

/**
 * Signals that the target server failed to respond with a valid HTTP response.
 *
 * @since 4.0
 */
public class NoHttpResponseException extends IOException {
    private static final long serialVersionUID = -7658940387386078766L;
    /**
     * Creates a new NoHttpResponseException with the specified detail message.
     *
     * @param message exception message
     */
    public NoHttpResponseException(final String message) {
        super(HttpException.clean(message));
    }
}
NoHttpResponseException繼承了IOException,用于表示目標(biāo)服務(wù)器沒有返回一個(gè)正常的http response

DefaultHttpResponseParser

org/apache/http/impl/conn/DefaultHttpResponseParser.java

public class DefaultHttpResponseParser extends AbstractMessageParser<HttpResponse> {
    private final Log log = LogFactory.getLog(getClass());
    private final HttpResponseFactory responseFactory;
    private final CharArrayBuffer lineBuf;
    //......
    @Override
    protected HttpResponse parseHead(
            final SessionInputBuffer sessionBuffer) throws IOException, HttpException {
        //read out the HTTP status string
        int count = 0;
        ParserCursor cursor = null;
        do {
            // clear the buffer
            this.lineBuf.clear();
            final int i = sessionBuffer.readLine(this.lineBuf);
            if (i == -1 && count == 0) {
                // The server just dropped connection on us
                throw new NoHttpResponseException("The target server failed to respond");
            }
            cursor = new ParserCursor(0, this.lineBuf.length());
            if (lineParser.hasProtocolVersion(this.lineBuf, cursor)) {
                // Got one
                break;
            } else if (i == -1 || reject(this.lineBuf, count)) {
                // Giving up
                throw new ProtocolException("The server failed to respond with a " +
                        "valid HTTP response");
            }
            if (this.log.isDebugEnabled()) {
                this.log.debug("Garbage in response: " + this.lineBuf.toString());
            }
            count++;
        } while(true);
        //create the status line from the status string
        final StatusLine statusline = lineParser.parseStatusLine(this.lineBuf, cursor);
        return this.responseFactory.newHttpResponse(statusline, null);
    }
    protected boolean reject(final CharArrayBuffer line, final int count) {
        return false;
    }
}
DefaultHttpResponseParser繼承了AbstractMessageParser,其parseHead方法讀取sessionBuffer,若該數(shù)據(jù)為空則拋出NoHttpResponseException("The target server failed to respond")

小結(jié)

NoHttpResponseException繼承了IOException,用于表示目標(biāo)服務(wù)器沒有返回一個(gè)正常的http response,一般是目標(biāo)服務(wù)器負(fù)載太高處理不過來因而斷開了連接,也有可能是目標(biāo)服務(wù)器把這個(gè)空閑連接關(guān)閉了,而HttpClient則繼續(xù)用這個(gè)連接發(fā)送請求則會(huì)讀取不到正常的reponse,因而拋出NoHttpResponseException。大多數(shù)情況下,可以通過重試解決。另外針對因?yàn)閗eep-alive超時(shí)斷開的,可以配置HttpClient的connTimeToLive值小于服務(wù)端的keepAlive值(通常是60s)。

doc

以上就是NoHttpResponseException異常解決優(yōu)化HttpClient配置以避免連接問題的詳細(xì)內(nèi)容,更多關(guān)于HttpClient NoHttpResponseException的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • springboot實(shí)現(xiàn)調(diào)用百度ocr實(shí)現(xiàn)身份識別+二要素校驗(yàn)功能

    springboot實(shí)現(xiàn)調(diào)用百度ocr實(shí)現(xiàn)身份識別+二要素校驗(yàn)功能

    本文介紹了如何使用Spring Boot調(diào)用百度OCR服務(wù)進(jìn)行身份識別,并通過二要素校驗(yàn)確保信息準(zhǔn)確性,感興趣的朋友一起看看吧
    2025-03-03
  • Dubbo擴(kuò)展點(diǎn)SPI實(shí)踐示例解析

    Dubbo擴(kuò)展點(diǎn)SPI實(shí)踐示例解析

    這篇文章主要為大家介紹了Dubbo擴(kuò)展點(diǎn)SPI實(shí)踐示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Java實(shí)戰(zhàn)員工績效管理系統(tǒng)的實(shí)現(xiàn)流程

    Java實(shí)戰(zhàn)員工績效管理系統(tǒng)的實(shí)現(xiàn)流程

    只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+Mysql+Maven+HTML實(shí)現(xiàn)一個(gè)員工績效管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2022-01-01
  • Java基礎(chǔ)之this關(guān)鍵字的使用

    Java基礎(chǔ)之this關(guān)鍵字的使用

    今天給大家?guī)淼氖顷P(guān)于Java基礎(chǔ)的相關(guān)知識,文章圍繞著this關(guān)鍵字的使用展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java后端配置允許跨域方式

    Java后端配置允許跨域方式

    本文介紹了在不同技術(shù)和框架中配置跨域資源共享(CORS)的方法,包括使用SpringMVC的@CrossOrigin注解、SpringBoot的全局CORS配置、SpringSecurity中的CORS集成以及手動(dòng)設(shè)置響應(yīng)頭,根據(jù)具體需求和技術(shù)棧,選擇合適的方法來確??缬蛘埱蟮陌踩院陀行?/div> 2025-02-02
  • Java比較兩個(gè)對象大小的三種方法詳解

    Java比較兩個(gè)對象大小的三種方法詳解

    在優(yōu)先級隊(duì)列中插入的元素必須能比較大小,如果不能比較大小,如插入兩個(gè)學(xué)生類型的元素,會(huì)報(bào)ClassCastException異常。本文就為大家總結(jié)了Java比較兩個(gè)對象大小的三種方法,需要的可以參考一下
    2022-07-07
  • mybatis中的異常BindingException詳解

    mybatis中的異常BindingException詳解

    這篇文章主要介紹了mybatis中的異常BindingException詳解,此異常是mybatis中拋出的,意思是使用的這個(gè)方法找到,但是因?yàn)閙apperScan()已經(jīng)掃描到了Mapper類了,在綁定Mapper.xml時(shí)沒有綁定到導(dǎo)致的,需要的朋友可以參考下
    2024-01-01
  • Spring中的@CrossOrigin注解的使用詳細(xì)解讀

    Spring中的@CrossOrigin注解的使用詳細(xì)解讀

    這篇文章主要介紹了Spring中的@CrossOrigin注解的使用詳細(xì)解讀,跨源資源共享(CORS),是由大多數(shù)瀏覽器實(shí)現(xiàn)的W3C規(guī)范,允許對跨域請求進(jìn)行靈活授權(quán),用來代替IFRAME或JSONP等非正規(guī)實(shí)現(xiàn)方式,需要的朋友可以參考下
    2023-11-11
  • 詳解Java中的hashcode

    詳解Java中的hashcode

    這篇文章主要介紹了詳解Java中的hashcode,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Struts2 OGNL表達(dá)式實(shí)例詳解

    Struts2 OGNL表達(dá)式實(shí)例詳解

    這篇文章主要介紹了Struts2 OGNL表達(dá)式實(shí)例詳解,相關(guān)實(shí)例代碼,需要的朋友可以參考。
    2017-09-09

最新評論

桑植县| 芦溪县| 武汉市| 玛多县| 长兴县| 泰来县| 资阳市| 东辽县| 淮阳县| 金堂县| 镇远县| 郁南县| 湄潭县| 富民县| 西充县| 会泽县| 新乡县| 崇仁县| 五大连池市| 读书| 玛曲县| 舟曲县| 德阳市| 旌德县| 东港市| 微博| 工布江达县| 靖江市| 莫力| 南溪县| 翼城县| 芒康县| 荆州市| 米林县| 虹口区| 青河县| 儋州市| 兴城市| 麟游县| 中超| 平顶山市|