[英]Android Volley POST not working
我會列舉一些例子,但是我嘗試過的數十個例子似乎都不起作用。 如果嘗試使用requestJsonObject,則會在響應中收到一條錯誤消息,提示它無法將JSONArray放入JSONObject中。 如果我嘗試使用JSONArray,它似乎無法處理post參數。 我找到了一篇帖子,聲稱他們更新了一些內容以允許將JSONObject傳遞到JSONArray中,但找不到關於該代碼在何處或如何獲得該死的東西。 我要做的就是發送一個簡單的Rest帖子,並獲取json響應。 我正在一個接一個的接一個地瀏覽,而我對Java不夠熟悉,無法理解其中一些更復雜的答案,找不到沒有參數的答案,或試圖將JSONObject推入JsonArrayRequest的答案(這會拋出一個錯誤(對我來說是錯誤),您如何在Android中正常工作?!?! 這是我嘗試過的兩種方法
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);
}
Java和PHP之間的差異是問題所在。 PHP對POST數據的處理方式不同,並且由於對值的編碼方式而無法獲取這些值。
解決方法是從php:// input解碼它們
$post = json_decode(file_get_contents("php://input"), true);
作為概述這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.