簡體   English   中英

我想在 C# 中通過授權向 Elasticsearch 發送一個 http 請求(Post、Get 等)。 我怎么做?

[英]I want to send a http request (Post, Get etc) to elasticsearch with authorization in C#. How do I do that?

我想向本地機器上托管的彈性客戶端發送和接收請求。 我能夠讓它運行並在命令提示符下通過 cURL 發送請求。 例如:

  • GET 請求: curl --insecure -u elastic:9HhekGpassword -X GET https://localhost:9200/_cluster/health

通過在我的 cmd 中運行它,我可以查看集群的運行狀況。

  • POST 請求: curl --insecure -H "Content-Type:application/x-ndjson: -XPOST -u elastic:9HhekGpassword https://localhost:9200/products/_bulk --data-binary "@products-bulk.json "

使用此命令,我將同一目錄中的文件“products-bulk.json”推送到彈性服務器。

我必須使用 --insecure ,否則它會給出一些證書錯誤,我想如果我在 C# 中嘗試,我可能也必須使用它。 (我發現的替代方案是 --cacert ,但這似乎與彈性搜索有一些常見問題。)。

我如何訪問服務器並在 C# 中重寫這些命令。 我嘗試查看 HTTP 客戶端文檔和一些查詢,但發現很難理解並使其工作。 所以非常感謝任何幫助。

我知道這可以在 Kibana 中輕松完成,但我希望在 C# 中完成。

PS:我是編程新手。 如果使用的術語不准確並且疑問無關緊要,請原諒。

  1. 從 nugget 安裝 Nest 包(主版本與您的 es 版本匹配)

  2. 您可以使用 LowLevel 客戶端發送任何 json 命令。

有關身份驗證,請參閱: https ://www.elastic.co/guide/en/elasticsearch/client/net-api/current/configuration-options.html

示例:

Elasticsearch.Net.ElasticLowLevelClient lowClient = new Elasticsearch.Net.ElasticLowLevelClient(yourAuth);
            var te = lowClient.Bulk<BulkResponse>(indexTargetet, yourjson);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM