如何在Java中使用Elasticsearch Rest API?

艾宾·冈兹

我正在使用Apache Http客户端来利用ElasticSearch Rest Api,但我总是收到HTTP错误代码200。请帮助

Java代码

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.util.Scanner;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;

public class ApacheHttpClientPost {

    public static void main(String[] args) {
        String path="C:\\Tools\\ElasticSearchApi\\javadoc.txt", filecontent="";
        ApacheHttpClientPost apacheHttpClientPost = new ApacheHttpClientPost();
        try {
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost postRequest = new HttpPost("http://localhost:9200/versioneg/message/_percolate");
            filecontent=apacheHttpClientPost.readFileContent(path);
            System.out.println(filecontent);
            StringEntity input = new StringEntity(filecontent);
            input.setContentType("application/json");
            postRequest.setEntity(input);
            HttpResponse response = httpClient.execute(postRequest);
            if (response.getStatusLine().getStatusCode() != 201) {
                throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
            }
            BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
            String output;
            System.out.println("Output from Server .... \n");
            while ((output = br.readLine()) != null) {

                System.out.println(output);
            }
            httpClient.getConnectionManager().shutdown();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private String readFileContent(String pathname) throws IOException {

        File file = new File(pathname);
        StringBuilder fileContents = new StringBuilder((int)file.length());
        Scanner scanner = new Scanner(file);
        String lineSeparator = System.getProperty("line.separator");

        try {
            while(scanner.hasNextLine()) {        
                fileContents.append(scanner.nextLine() + lineSeparator);
            }
            return fileContents.toString();
        } finally {
            scanner.close();
        }
    }
}

安慰

{
   "doc": {
      "os": "Linux",
      "product": {
         "name": "abc",
         "version": 10.1,
         "configversion": 1,
         "arch": 32,
         "license": "commercial",
         "db": {
            "@type": "Oracle"
         }
      }
   }
}

Exception in thread "main" java.lang.RuntimeException: Failed : HTTP error code : 200
    at com.informatica.zanshin.esapi.utils.ApacheHttpClientPost.main(ApacheHttpClientPost.java:31)

这是elasticsearch感截图

在此处输入图片说明

拉贾

状态码200代表“确定”
检查w3c参考


你应该用

    if(response.getStatusLine().getStatusCode() != 200){
        // Throw exception or something else
    } 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中使用Outlook Rest Calendar API

来自分类Dev

如何在REST API中使用会话

来自分类Dev

如何在FireMonkey中使用REST API?

来自分类Dev

如何在FireMonkey中使用REST API?

来自分类Dev

如何在OpenCorporates REST API中使用访问令牌?

来自分类Dev

如何在PHP中使用CURL调用REST API?

来自分类Dev

如何在URL中使用*正确调用REST-API

来自分类Dev

如何在.NET中使用REST API创建Azure蓝图

来自分类Dev

如何在Google服务帐户中使用PubSub Rest API?

来自分类Dev

如何在Rest API中使用域聚合根?

来自分类Dev

如何在C#中使用rest api

来自分类Dev

如何在 Orbeon 中使用 REST API 创建表单定义?

来自分类Dev

如何在JAVA / Android中使用Woocommerce REST API的'POST'Http Verb?

来自分类Dev

如何在Elasticsearch(Java API)中使用queryString()?

来自分类Dev

在Java中使用BitBucket REST API

来自分类Dev

在Java中使用BitBucket REST API

来自分类Dev

如何在java中使用rest api连接VSTS Azure Devops?我没有为此获得任何 Java 文档

来自分类Dev

在DropWizard中使用REST API

来自分类Dev

如何在Terraform中使用AWS HTTP API(不是REST API)?

来自分类Dev

如何调用REST API和API中使用这些数据?

来自分类Dev

使用Java使用REST API

来自分类Dev

无法使用REST API

来自分类Dev

使用USDA REST API

来自分类Dev

如何使用Java / Android与REST API通信?

来自分类Dev

如何使用Broadleaf REST API?

来自分类Dev

如何使用 REST API 登录?

来自分类Dev

如何在Symfony 2中使用Behat和Mink测试REST API

来自分类Dev

如何在Advanced REST API客户端中使用Chrome中的Cookie

来自分类Dev

如何在Sails JS(NodeJS MVC)中使用外部Rest API

Related 相关文章

热门标签

归档