我是 Android Studio 的初学者,我正在使用 Ajax 将数据发送到我的数据库服务器。我有两种类型的 HashMap 参数需要查询。一个用于我的表单中的所有字符串值,另一个用于图像文件,但我似乎无法在一次调用新的 Aquery.ajax(//parameters) 方法中发送它们。此方法的所有变体都限制了仅使用一种 Map 类型。
我尝试将 ParamFile 参数放在不同的查询中,但它仍然不起作用。虽然这可能是因为我不完全确定“对象处理程序”在其他方法定义中的含义。
这是我的方法的代码:
private void AddNewEquipment()
{
try {
//Two types of HashMap files
HashMap<String, String> param = new HashMap<>();
HashMap<String, Bitmap> paramFile = new HashMap<>();
param.put("listing_title", ETitle.getText().toString());
param.put("listing_type", String.valueOf(IntEquipmentType));
param.put("listing_desc", EDesc.getText().toString());
param.put("listing_rate", ERate.getText().toString());
param.put("listing_mode", Mode);
paramFile.put("listing_img_file", bitmap); //this never gets queried
param.put("listing_date_from-x", AvailableFromDT);
param.put("listing_date_to-x", AvailableToDT);
param.put("listing_sell_mode", SellMode);
param.put("listing_display_mode", String.valueOf(IntAdType));
param.put("listing_status", String.valueOf(IntAdStatus));
AQuery aq = new AQuery(this);
aq.ajax(BASE_URL, param, JSONObject.class, new AjaxCallback<JSONObject>() {
@Override
public void callback(String url, JSONObject json, AjaxStatus status) {
super.callback(url, json, status);
Log.v("CALLBACK RECEIVED", String.valueOf(json) + status);
try {
if (json != null) {
JSONObject h = json.getJSONObject("success");
Log.v("SUCCESS", "DONE");
Toast.makeText(AddEquipment.this, "New Equipment Added", Toast.LENGTH_LONG).show();
exitEquipmentForm(); //method that opens the main activity again
} else {
Log.v("ERROR", "ERROR");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.method(AQuery.METHOD_POST).header("Authorization", "Bearer "+SessionHandler.getKeyToken()));
} catch (Exception e) {
e.printStackTrace();
}
}
我不断得到空 JSON 对象,尽管那是因为并非所有参数都被查询<---我需要帮助的部分。
我很高兴提供更多我的代码片段。请让我知道任何替代方案。