国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用Http Interface客戶端解析text/html類型請求

這篇具有很好參考價(jià)值的文章主要介紹了使用Http Interface客戶端解析text/html類型請求。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言
Spring6和Spring Boot3的正式發(fā)布也有一段時(shí)間了,最低支持的java版本也是直接跳到了17。而且最近java21也出來了,作為一個(gè)javaer,你不會還在堅(jiān)守java8吧?

Http Interface是Spring6新推出的一個(gè)聲明式http客戶端,寫法有點(diǎn)像Retrofit。最近也是在一個(gè)新的項(xiàng)目里引入了Http Interface,但是目前相關(guān)資料還是比較少的,碰到一些問題還是會花費(fèi)些時(shí)間精力。

問題

這次遇到的問題是:使用Http Interface請求一個(gè)接口,然后用到其中的返回結(jié)果做json解析。這個(gè)http返回的content-type是text/html; charset=utf-8,我所使用的json解析工具是jackson。但是對其中的內(nèi)容轉(zhuǎn)java對象時(shí)卻一直失敗,下面是解決方案。

解決

問題的原因?qū)嶋H上是Http interface中的jackson解碼器不支持解碼text/html的類型,因此我們只要讓它做到支持就可以了。

首先在構(gòu)造WebClient的時(shí)候使用.codecs()方法來添加自定義轉(zhuǎn)換器:

@Configuration
public class RestClientConfig {
    
    @Bean
    public ChatCompletionDMClient chatCompletionDMClient() {
        WebClient webClient = WebClient.builder()
                .baseUrl(BASE_URL)
                // 添加自定義轉(zhuǎn)換text/html;charset=utf-8
                .codecs(clientCodecConfigurer -> {
                    clientCodecConfigurer.customCodecs()
                            .register(new DecoderHttpMessageReader<Object>(
                                    new TextHtml2HttpMessageConverter()));
                })
                .build();

        HttpServiceProxyFactory httpFactory = HttpServiceProxyFactory.builder()
                .clientAdapter(WebClientAdapter.forClient(webClient))
                .build();

        return httpFactory.createClient(ChatCompletionDMClient.class);
    }

   
}

接著看一下使用的地方,添加上accept = "text/html; charset=utf-8"

@PostExchange(url = "/dialogue/",
            contentType = MediaType.MULTIPART_FORM_DATA_VALUE,
            accept = "text/html; charset=utf-8")
    ResponseEntity<DMChatCompletionResult> createChatCompletion(
            @RequestPart("content") String content,
            @RequestPart("history") String history);

這樣就可以實(shí)現(xiàn)使用http interface來將http結(jié)果中的text/html的json數(shù)據(jù)轉(zhuǎn)為java對象了。文章來源地址http://www.zghlxwxcb.cn/news/detail-729907.html

到了這里,關(guān)于使用Http Interface客戶端解析text/html類型請求的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 如何使用Laravel的HTTP客戶端與外部API交互

    如何使用Laravel的HTTP客戶端與外部API交互

    Laravel使API交互對新的和有經(jīng)驗(yàn)的Web開發(fā)人員來說都是輕而易舉的。Larvel的HTTP客戶端是建立在PHP的Guzzle HTTP客戶端之上,讓開發(fā)者在進(jìn)行HTTP請求時(shí)有更順暢的體驗(yàn)。它的主要功能包括認(rèn)證, 路由, 和有效的對象關(guān)系映射(ORM). 本文將探討如何使用Laravel的HTTP客戶端來進(jìn)行請求, 調(diào)

    2024年01月21日
    瀏覽(46)
  • HTTP Header定制,客戶端使用Request,服務(wù)器端使用Response

    HTTP Header定制,客戶端使用Request,服務(wù)器端使用Response

    ?在服務(wù)器端通過request.getHeaders()是無效的,只能使用response.getHeaders()。 ?

    2024年02月16日
    瀏覽(29)
  • http客戶端Fegin

    http客戶端Fegin

    代碼可讀性差,編程體驗(yàn)不統(tǒng)一 參數(shù)復(fù)雜URL難以維護(hù) Feign是聲明式的http客戶端(只需要將發(fā)http請求的信息寫出即可) ?主要基于SpringMvc的注解來聲明遠(yuǎn)程調(diào)用的信息: ?步驟: 1.引入依賴 2.添加EnableFeignClients注解 3.編寫FeignClient接口 4.使用FeigClient中定義的方法代替RestTempl

    2024年02月09日
    瀏覽(16)
  • 【W(wǎng)ebClient】客戶端HTTP 超時(shí)配置

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 1、項(xiàng)目升級到Springboot3,使用WebFlux自帶的WebClient作為HTTP客戶端 2、接口類客戶端方式調(diào)用外部服務(wù),默認(rèn)超時(shí)5S 3、需根據(jù)業(yè)務(wù)動(dòng)態(tài)修改超時(shí)時(shí)間,如60S 報(bào)錯(cuò)如下: java.lang.IllegalStateException: Timeout on bl

    2024年02月12日
    瀏覽(34)
  • 微服務(wù)——http客戶端Feign

    微服務(wù)——http客戶端Feign

    目錄 Restemplate方式調(diào)用存在的問題 Feign的介紹 基于Feign遠(yuǎn)程調(diào)用 Feign自定義配置 修改日志方式一(基于配置文件) 修改日志方式二(基于java代碼) Feign的性能優(yōu)化 連接池使用方法? Feign_最佳實(shí)踐分析? ?方式一: 方式二 ?實(shí)現(xiàn)Feign最佳實(shí)踐(方式二) ?兩種解決方案 就像早期的事務(wù)

    2024年02月15日
    瀏覽(44)
  • 【libevent】http客戶端3:簡單封裝

    LibEventHttp

    2024年02月15日
    瀏覽(19)
  • 【六、http】go的http的客戶端重定向

    【六、http】go的http的客戶端重定向

    重定向過程 :客戶瀏覽器發(fā)送http請求----》web服務(wù)器接受后發(fā)送302狀態(tài)碼響應(yīng)及對應(yīng)新的location給客戶瀏覽器–》客戶瀏覽器發(fā)現(xiàn)是302響應(yīng),則自動(dòng)再發(fā)送一個(gè)新的http請求,請求url是新的location地址----》服務(wù)器根據(jù)此請求尋找資源并發(fā)送給客戶。在這里location可以重定向到任

    2024年02月05日
    瀏覽(21)
  • Forest聲明式HTTP客戶端框架漫談

    Forest 是一款聲明式的 Java 開源 HTTP 框架,相比它的前輩 Httpclient 和 OkHttp 更簡明易懂、也更容易維護(hù),使用過程中非常絲滑故想分享給更多的朋友,此處我們進(jìn)行簡單的介紹和使用說明。 Forest為聲明式HTTP客戶端框架。將繁復(fù)的 HTTP 請求細(xì)節(jié)封裝成 Java 接口 + 注解的形式,不

    2024年02月09日
    瀏覽(24)
  • Java常用的Http client客戶端

    Apache HttpClient是一個(gè)開源的Java HTTP客戶端庫,具有豐富的功能集,包括自動(dòng)重試、連接管理、cookie管理、代理支持和認(rèn)證等。HttpClient已成為Java開發(fā)中廣泛使用的HTTP客戶端之一。 OkHttp是Square公司開發(fā)的一個(gè)高性能的HTTP客戶端庫,具有自動(dòng)重試、連接池、交互式調(diào)試和壓縮支持

    2024年02月08日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包