Class AbstractHttpMessageParser<T>
java.lang.Object
io.leandev.appfuse.http.AbstractHttpMessageParser<T>
- Type Parameters:
T- HTTP 訊息類型 (ClassicHttpRequest 或 ClassicHttpResponse)
- Direct Known Subclasses:
HttpRequestParser, HttpResponseParser
HTTP 訊息解析器的抽象基類
提供共同的解析邏輯,支援 JSON、XML 和純文字格式。 子類別只需要實作取得 HttpEntity 的方法即可。
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final tools.jackson.databind.ObjectMapper用於 JSON 序列化/反序列化的 ObjectMapper 實例 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract org.apache.hc.core5.http.HttpEntity從 HTTP 訊息中取得 HttpEntityprotected <R> R從文字解析為指定類型的物件<R> R讀取並解析為指定類型的物件protected DocumentreadAsDocument(String text) 從文字解析為 XML DocumentreadAsDocument(T message) 讀取並解析為 XML Documentprotected <R> List<R> readAsList(String payload, Class<R> type) 從文字解析為指定類型的物件列表<R> List<R> readAsList(T message, Class<R> type) 讀取並解析為指定類型的物件列表readAsText(T message) 讀取為純文字
-
Field Details
-
objectMapper
protected final tools.jackson.databind.ObjectMapper objectMapper用於 JSON 序列化/反序列化的 ObjectMapper 實例
-
-
Constructor Details
-
AbstractHttpMessageParser
public AbstractHttpMessageParser()
-
-
Method Details
-
getEntity
從 HTTP 訊息中取得 HttpEntity- Parameters:
message- HTTP 訊息(request 或 response)- Returns:
- HttpEntity 實例
-
read
讀取並解析為指定類型的物件- Type Parameters:
R- 回傳物件的類型- Parameters:
message- HTTP 訊息type- 目標類型- Returns:
- 解析後的物件
- Throws:
NotFoundException- 如果 payload 為空HttpClientException- 如果解析失敗
-
readAsList
讀取並解析為指定類型的物件列表- Type Parameters:
R- 列表元素的類型- Parameters:
message- HTTP 訊息type- 列表元素類型- Returns:
- 解析後的物件列表
- Throws:
HttpClientException- 如果解析失敗
-
readAsDocument
讀取並解析為 XML Document- Parameters:
message- HTTP 訊息- Returns:
- XML Document
- Throws:
HttpClientException- 如果解析失敗
-
readAsText
讀取為純文字- Parameters:
message- HTTP 訊息- Returns:
- 文字內容
- Throws:
HttpClientException- 如果讀取失敗
-
read
從文字解析為指定類型的物件- Type Parameters:
R- 回傳物件的類型- Parameters:
payload- JSON 文字內容type- 目標類型的 Class- Returns:
- 解析後的物件
- Throws:
NotFoundException- 如果 payload 為空HttpClientException- 如果解析失敗
-
readAsList
從文字解析為指定類型的物件列表- Type Parameters:
R- 列表元素的類型- Parameters:
payload- JSON 文字內容type- 列表元素類型的 Class- Returns:
- 解析後的物件列表,如果 payload 為空則回傳空列表
- Throws:
HttpClientException- 如果解析失敗
-
readAsDocument
從文字解析為 XML Document- Parameters:
text- XML 文字內容- Returns:
- 解析後的 XML Document
- Throws:
HttpClientException- 如果解析失敗
-