对API端点的简单PUT请求

时间:2019-07-24 11:58:46

标签: c# http elasticsearch

我正在尝试将JSON放置到ElasticSearch api中,以尝试将文档索引/插入到现有索引中,但是我找不到任何实际可用的代码示例。我看过httpClient,httpWebRequests和弹性.net插件-NEST。

在Postman之类的工具中,一切正常。以下内容将如何转换为C#?

以下是我要在ARC(高级Rest客户端)中进行放置的示例:

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

像这样?

public void PutAPI(string basicAuth, string json)
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("authorization", $"Basic {basicAuth}");
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        var response = client.PutAsync("https://mydankapi.com/v1/put", new StringContent(json, Encoding.UTF8, "application/json")).Result;
        if (!response.IsSuccessStatusCode)
            throw new Exception(response.ReasonPhrase);              
    }
}

答案 1 :(得分:0)

为什么NEST不能满足您的要求?根据他们的Getting Started - Indexing,您可以像这样对文档建立索引:

var tweet = new Tweet
{
    Id = 1,
    User = "kimchy",
    PostDate = new DateTime(2009, 11, 15),
    Message = "Trying out NEST, so far so good?"
};

var response = client.Index(tweet, idx => idx.Index("mytweetindex")); //or specify index via settings.DefaultIndex("mytweetindex");

您所要做的就是为您的文档类型(DataMetadata?)创建POCO类,然后将索引名称设置为data_metadata