国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Elasticsearch Java Low Level REST Client(讀取響應(yīng))

wangxinarhat / 2282人閱讀

摘要:讀取響應(yīng)對(duì)象由同步方法返回或作為中的參數(shù)接收,它包裝客戶端返回的響應(yīng)對(duì)象并公開一些其他信息。有關(guān)執(zhí)行的請(qǐng)求的信息。返回響應(yīng)的主機(jī)。響應(yīng)體包含在對(duì)象中。對(duì)于返回狀態(tài)碼的請(qǐng)求,不會(huì)拋出,因?yàn)樗且粋€(gè)預(yù)期的響應(yīng),僅表示找不到該資源。

讀取響應(yīng)

Response對(duì)象由同步performRequest方法返回或作為ResponseListener#onSuccess(Response)中的參數(shù)接收,它包裝http客戶端返回的響應(yīng)對(duì)象并公開一些其他信息。

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() — 有關(guān)執(zhí)行的請(qǐng)求的信息。

response.getHost() — 返回響應(yīng)的主機(jī)。

response.getStatusLine() — 響應(yīng)狀態(tài)行,你可以從中檢索狀態(tài)代碼。

response.getHeaders() — 響應(yīng)頭,也可以通過getHeader(String)按名稱檢索。

response.getEntity() — 響應(yīng)體包含在org.apache.http.HttpEntity對(duì)象中。

執(zhí)行請(qǐng)求時(shí),會(huì)拋出異常(或在以下方案中作為ResponseListener#onFailure(Exception)中的參數(shù)接收:

IOException

通信問題(例如SocketTimeoutException

ResponseException

返回了一個(gè)響應(yīng),但其狀態(tài)代碼表示錯(cuò)誤(不是2xx),ResponseException源自有效的http響應(yīng),因此它公開其相應(yīng)的Response對(duì)象,該對(duì)象提供對(duì)返回的響應(yīng)的訪問。

對(duì)于返回404狀態(tài)碼的HEAD請(qǐng)求,不會(huì)拋出ResponseException,因?yàn)樗且粋€(gè)預(yù)期的HEAD響應(yīng),僅表示找不到該資源。除非ignore參數(shù)包含404,否則所有其他HTTP方法(例如,GET)都會(huì)為404響應(yīng)拋出ResponseExceptionignore是一個(gè)特殊的客戶端參數(shù),不會(huì)發(fā)送到Elasticsearch并包含逗號(hào)分隔的錯(cuò)誤狀態(tài)代碼列表,它允許控制是否應(yīng)將某些錯(cuò)誤狀態(tài)碼視為預(yù)期響應(yīng)而不是異常。這對(duì)于例如getapi很有用,因?yàn)樗梢栽谖臋n丟失時(shí)返回404,在這種情況下,響應(yīng)正文將不包含錯(cuò)誤,而是通常的getapi響應(yīng),只是沒有找到未找到的文檔。

請(qǐng)注意,低級(jí)別客戶端不會(huì)公開任何json編組和反編組的輔助程序,用戶可以自由地使用他們喜歡的庫(kù)。

底層的Apache Async Http Client附帶了不同的org.apache.http.HttpEntity實(shí)現(xiàn),允許以不同的格式提供請(qǐng)求體(流、字節(jié)數(shù)組、字符串等),至于讀取響應(yīng)體,HttpEntity#getContent方法很方便,它返回從先前緩沖的響應(yīng)體讀取的InputStream,作為替代方案,可以提供自定義org.apache.http.nio.protocol.HttpAsyncResponseConsumer來控制字節(jié)的讀取和緩沖方式。

日志記錄

Java REST客戶端使用Apache Async Http Client使用的相同日志庫(kù):Apache Commons Logging,它支持許多流行的日志記錄實(shí)現(xiàn),啟用日志記錄的java包是客戶端本身的org.elasticsearch.client和嗅探器的org.elasticsearch.client.sniffer

還可以啟用請(qǐng)求跟蹤器日志記錄,以便以curl格式記錄每個(gè)請(qǐng)求和相應(yīng)的響應(yīng),這在調(diào)試時(shí)很方便,例如,如果需要手動(dòng)執(zhí)行請(qǐng)求以檢查它是否仍然產(chǎn)生與它相同的響應(yīng),為tracer包啟用跟蹤日志記錄以打印出此類日志行,請(qǐng)注意,此類日志記錄開銷很大,不應(yīng)在生產(chǎn)環(huán)境中始終啟用,而是僅在需要時(shí)暫時(shí)使用。

上一篇:執(zhí)行請(qǐng)求 下一篇:通用配置

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/72352.html

相關(guān)文章

  • Elasticsearch Java REST Client(目錄)

    摘要:用于的官方高級(jí)別客戶端,基于低級(jí)別客戶端,它公開特定的方法,并負(fù)責(zé)請(qǐng)求編組和響應(yīng)反編組。入門初始化執(zhí)行請(qǐng)求讀取響應(yīng)日志記錄通用配置嗅探器在中被添加。依賴于核心項(xiàng)目,它接受與相同的請(qǐng)求參數(shù),并返回相同的響應(yīng)對(duì)象。 Elasticsearch Java REST Client Java REST Client有兩種類型: Java Low Level REST Client:用于Elast...

    roland_reed 評(píng)論0 收藏0
  • Elasticsearch Java Low Level REST Client(執(zhí)行請(qǐng)求)

    摘要:執(zhí)行請(qǐng)求一旦創(chuàng)建了,就可以通過調(diào)用或來發(fā)送請(qǐng)求,是同步的,將阻塞調(diào)用線程并在請(qǐng)求成功時(shí)返回,如果失敗則拋出異常。自定義響應(yīng)消費(fèi)者。處理返回的響應(yīng)。由于通信錯(cuò)誤或帶有指示錯(cuò)誤的狀態(tài)碼的響應(yīng),處理返回的異常。 執(zhí)行請(qǐng)求 一旦創(chuàng)建了RestClient,就可以通過調(diào)用performRequest或performRequestAsync來發(fā)送請(qǐng)求,performRequest是同步的,將阻塞調(diào)...

    Code4App 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<