0
我遇到了严重问题,试图找到将文档按类型推送到elasticsearch索引的正确语法。Elasticsearch索引文档
使用要做到这一点我的代码IM是:
String url = "https://my_url/my_index_name";
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response).getJSONObject("form");
String site = jsonResponse.getString("site"),
network = jsonResponse.getString("network");
Log.d("Site: ", site + "\nNetwork: "+network);
} catch (JSONException e) {
e.printStackTrace();
Log.e("JSON EXCEPTION", e.toString());
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}
)
{
@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<>();
// the POST parameters:
params.put("type", "type_name");;
params.put("field1", field1_value);
params.put("field2", field2_value);
params.put("field3", field3_value);
params.put("field4", field4_value);
params.put("field5", field5_value);
return params;
}
};
Volley.newRequestQueue(this).add(postRequest);
它击中服务器,当我越来越400个请求,但我只是不能得到它去的使用这个。
12-14 16:19:04.533 12642-13089/? E/Volley﹕ [41831]
BasicNetwork.performRequest: Unexpected response code 400 for URL
可以启发我什么是正确的语法,使用java代码,或告诉我我做错了什么?
我认为正确的语法是:
http:// url | index_name |键入|身体 ?
编辑:我已经搜索了SO,弹性java api's,谷歌组和所有的互联网3天现在,没有运气!任何东西都非常感谢!
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
Log.e("VOLLEY ERROR", "" + error.toString());
}
}
结果:排ERROR:com.android.volley.ServerError
任何想法?
400是一个“错误的请求”响应代码,您需要在返回的代码中找到确切的错误消息。该错误消息(它在那里,检查日志)会告诉你到底你的请求的部分弹性搜索不明白 –
任何想法我可以做到这一点?我已成功查询索引并检索logcat中的映射。 – mangledBadger
也许在异常处理程序error.getMessage()? VolleyError应该提供对完整错误消息的访问。 –