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應該提供對完整錯誤消息的訪問。 –