spring列印http介面請求和響應

2021-10-10 18:03:10 字數 2293 閱讀 1963

在程式日誌中列印出介面請求和響應的內容是乙個基本的技術需求。如果在每個介面中實現請求響應的日誌列印,程式編寫會很繁瑣,我們可以利用spring提供的機制,集中處理介面請求響應的日誌列印。

具體的**參照 示例專案

基於spring提供的機制,有3種方法可以實現介面請求響應日誌的列印,分別是commonsrequestloggingfilter、handlerinterceptor、requestbodyadviceadapter。

通過設定 web 的日誌級別為 debug,spring會自己列印請求引數。該方法列印的內容覆蓋了後面介紹的所有方法中日誌的內容,如果不需要做定製列印,並且不介意列印的日誌級別是debug,那就足夠用了。

logging

:level

:root

: info

web: debug

commonsrequestloggingfilter的使用比較簡單,只需要實現乙個logfilter的bean即可。

只不過logfilter的日誌級別是debug,需要在日誌配置檔案中,將commonsrequestloggingfilter類的日誌級別設定為debug級別。

同時在生產環境的日誌檔案中列印debug日誌不符合規範。

@bean

public commonsrequestloggingfilter logfilter()

handlerinterceptor 可以獲取到介面執行過程中的 httpservletrequest 和 httpservletresponse 資訊,因此能夠列印出介面請求響應內容。

@component

public

class

loginterceptoradapter

extends

handlerinterceptoradapter

}

@slf4j

@component

public

class

loginterceptoradapter

extends

handlerinterceptoradapter

return

true;}

}

requestbodyadviceadapter 封裝了 afterbodyread 方法,在這個方法中可以通過 object body 引數獲取到body的內容。

}responsebodyadvice 和 requestbodyadviceadapter 同屬於 controlleradvice。responsebodyadvice 封裝了 beforebodywrite 方法,可以獲取到響應報文。

微信小程式HTTP介面請求封裝

1,方法封裝 新建資料夾util,在資料夾下建立request.js檔案,用於對方法封裝 requset.js 專案url相同部分,減輕 量,同時方便專案遷移 這裡因為我是本地除錯,所以host不規範,實際上應該是你備案的網域名稱資訊 post請求,url 介面 postdata 引數,json型別...

php curl 介面請求

通過url獲取頁面資訊 param string url 位址 return string 返回頁面資訊 function get url url 模擬post提交 param string url 位址 param string data 提交的資料 return string 返回結果 func...

RestClient(介面請求)

一 電子簽章 通過介面,傳入引數中有pdf檔案,和其他引數,在檔案上蓋上電子簽章。引入 通過nuget安裝restsharp,注意版本。備註 如果後面程式執行有錯,可以看是引用是否更改了web.config檔案 一般會更改newtonsoft.json的版本 電子簽章 蓋章 為1 表示報名確認函 為...