У меня возникают серьезные проблемы, пытаясь найти правильный синтаксис, чтобы подталкивать документ в индекс elasticsearch по типу.Elasticsearch индексирует документ
Мой код им с помощью, чтобы сделать это:
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 | тип | тело?
EDIT: Я искал SO, эластичные java api, группы google и по всему Интернету в течение 3 дней, без везения! Все, что угодно, очень ценится!
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
Log.e("VOLLEY ERROR", "" + error.toString());
}
}
Результаты в: Залп ОШИБКА: com.android.volley.ServerError
Любые идеи?
400 - это код ответа «плохой запрос», вам нужно найти точное сообщение об ошибке в ответе, который возвращается с помощью этого кода. Это сообщение об ошибке (это где-то, проверьте журналы) скажет вам, какая часть ваших запросов elasticsearch не поняла –
Любая идея, как я могу это сделать? Я успешно запросил индекс и получил сопоставления в logcat. – mangledBadger
Возможно, в обработчике исключения error.getMessage()? VolleyError должен предоставить доступ к полному сообщению об ошибке. –