摘要:讀取響應對象由同步方法返回或作為中的參數接收,它包裝客戶端返回的響應對象并公開一些其他信息。有關執行的請求的信息。返回響應的主機。響應體包含在對象中。對于返回狀態碼的請求,不會拋出,因為它是一個預期的響應,僅表示找不到該資源。
讀取響應
Response對象由同步performRequest方法返回或作為ResponseListener#onSuccess(Response)中的參數接收,它包裝http客戶端返回的響應對象并公開一些其他信息。
Response response = restClient.performRequest(new Request("GET", "/")); RequestLine requestLine = response.getRequestLine(); HttpHost host = response.getHost(); int statusCode = response.getStatusLine().getStatusCode(); Header[] headers = response.getHeaders(); String responseBody = EntityUtils.toString(response.getEntity());
response.getRequestLine() — 有關執行的請求的信息。
response.getHost() — 返回響應的主機。
response.getStatusLine() — 響應狀態行,你可以從中檢索狀態代碼。
response.getHeaders() — 響應頭,也可以通過getHeader(String)按名稱檢索。
response.getEntity() — 響應體包含在org.apache.http.HttpEntity對象中。
執行請求時,會拋出異常(或在以下方案中作為ResponseListener#onFailure(Exception)中的參數接收:
IOException
通信問題(例如SocketTimeoutException)
ResponseException
返回了一個響應,但其狀態代碼表示錯誤(不是2xx),ResponseException源自有效的http響應,因此它公開其相應的Response對象,該對象提供對返回的響應的訪問。
對于返回404狀態碼的HEAD請求,不會拋出ResponseException,因為它是一個預期的HEAD響應,僅表示找不到該資源。除非ignore參數包含404,否則所有其他HTTP方法(例如,GET)都會為404響應拋出ResponseException。ignore是一個特殊的客戶端參數,不會發送到Elasticsearch并包含逗號分隔的錯誤狀態代碼列表,它允許控制是否應將某些錯誤狀態碼視為預期響應而不是異常。這對于例如getapi很有用,因為它可以在文檔丟失時返回404,在這種情況下,響應正文將不包含錯誤,而是通常的getapi響應,只是沒有找到未找到的文檔。
請注意,低級別客戶端不會公開任何json編組和反編組的輔助程序,用戶可以自由地使用他們喜歡的庫。
底層的Apache Async Http Client附帶了不同的org.apache.http.HttpEntity實現,允許以不同的格式提供請求體(流、字節數組、字符串等),至于讀取響應體,HttpEntity#getContent方法很方便,它返回從先前緩沖的響應體讀取的InputStream,作為替代方案,可以提供自定義org.apache.http.nio.protocol.HttpAsyncResponseConsumer來控制字節的讀取和緩沖方式。
日志記錄Java REST客戶端使用Apache Async Http Client使用的相同日志庫:Apache Commons Logging,它支持許多流行的日志記錄實現,啟用日志記錄的java包是客戶端本身的org.elasticsearch.client和嗅探器的org.elasticsearch.client.sniffer。
還可以啟用請求跟蹤器日志記錄,以便以curl格式記錄每個請求和相應的響應,這在調試時很方便,例如,如果需要手動執行請求以檢查它是否仍然產生與它相同的響應,為tracer包啟用跟蹤日志記錄以打印出此類日志行,請注意,此類日志記錄開銷很大,不應在生產環境中始終啟用,而是僅在需要時暫時使用。
上一篇:執行請求 下一篇:通用配置文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/72352.html
摘要:用于的官方高級別客戶端,基于低級別客戶端,它公開特定的方法,并負責請求編組和響應反編組。入門初始化執行請求讀取響應日志記錄通用配置嗅探器在中被添加。依賴于核心項目,它接受與相同的請求參數,并返回相同的響應對象。 Elasticsearch Java REST Client Java REST Client有兩種類型: Java Low Level REST Client:用于Elast...
摘要:執行請求一旦創建了,就可以通過調用或來發送請求,是同步的,將阻塞調用線程并在請求成功時返回,如果失敗則拋出異常。自定義響應消費者。處理返回的響應。由于通信錯誤或帶有指示錯誤的狀態碼的響應,處理返回的異常。 執行請求 一旦創建了RestClient,就可以通過調用performRequest或performRequestAsync來發送請求,performRequest是同步的,將阻塞調...
閱讀 1414·2023-04-26 03:04
閱讀 2369·2019-08-30 15:44
閱讀 3737·2019-08-30 14:15
閱讀 3543·2019-08-27 10:56
閱讀 2763·2019-08-26 13:53
閱讀 2627·2019-08-26 13:26
閱讀 3090·2019-08-26 12:11
閱讀 3619·2019-08-23 18:21