我會包含示例,但是我嘗試過的幾十個示例中沒有一個似乎可以工作。如果我嘗試使用requestJsonObject,則在響應中出現錯誤,表示無法將JSONArray放入JSONObject中。如果我嘗試使用JSONArray,它似乎無法處理後期參數。我發現了一篇文章,聲稱他們更新了一些東西,以允許將JSONObject傳遞到JSONArray中,但無法找到任何地方或我如何在代碼中獲取它。 我想要做的就是發送一個簡單的平靜帖子,並得到一個json響應。我正在通過post之後發佈post,並且我對Java不夠熟悉,無法理解這些更復雜的答案,找到沒有參數的答案,或者找到試圖將JSONObject推送到JsonArrayRequest中的答案(這會引發錯誤對我來說) 如何在地獄你得到它在Android的工作?!?!以下是我嘗試的兩種方法:Android Volley POST不起作用
private void makeArrayRequest(String setSwitch)
{
try {
Map<String, String> params = new HashMap();
params.put("func", setSwitch);
JSONArray parameters = new JSONArray(params);
DisplayToast("Sending: " + setSwitch);
JsonArrayRequest jsonRequest = new JsonArrayRequest(
Request.Method.POST, url, parameters,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
DisplayText("Response: " + response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//error.printStackTrace();
DisplayText("Error:"+error.getMessage());
}
}
);
Volley.newRequestQueue(this).add(jsonRequest);
} catch(JSONException e) {
// this ends up getting thrown because of the HASH input
DisplayText("ArrErr:"+e.getMessage());
}
}
private void makeObjectRequest(String setSwitch)
{
DisplayToast("Sending: " + setSwitch);
Map<String, String> params = new HashMap();
params.put("func", setSwitch);
JSONObject parameters = new JSONObject(params);
JsonObjectRequest jsonRequest = new JsonObjectRequest(
Request.Method.POST, url, parameters,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
DisplayText("Response: " + response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//this ends up getting thrown because of JSONArray response?
DisplayText("Error:"+error.getMessage());
}
}
);
Volley.newRequestQueue(this).add(jsonRequest);
}
有嘗試StringRequest? 'https:// developer.android.com/training/volley/simple.html' –
問題是,我最終會讓這個東西和ESP8266對話,並且它上面的庫專門被使用(REST的方式是應該工作)通過POST/GET/DELETE /等各種功能。因此,如果可能的話,我需要弄清楚如何發送這樣的特定請求。 – Scott
esp8266作爲你的android設備的主機嗎?從來沒有嘗試過,所以它沒有任何反應? –