Android Studio Volley 向 POST 请求添加参数



我正在尝试通过在Android Studio Project中使用Volley将参数传递给POST请求。 事实上,我想通过 POST 请求发送昵称。 通过这种方式,我的 php 文件将向我发送一个我将解析的 json 数组。

我通过在我的 php 文件中用力地写这个昵称来测试我的解析 => 它有效,我得到了一个带有正确值的 json。 现在我想通过在 POST 请求的参数中添加他来发送这个昵称。

我尝试使用GetParams方法,但它不起作用。

这是我的代码

private void loadJsonArray() {
final String pseudo = "test";
JsonArrayRequest jsArrayRequest = new JsonArrayRequest
(Request.Method.POST, array_url, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray responseArray) {
pDialog.dismiss();
try {
StringBuilder textViewData = new StringBuilder();
//Parse the JSON response array by iterating over it
for (int i = 0; i < responseArray.length(); i++) {
JSONObject response = responseArray.getJSONObject(i);
Integer centreInteretId = response.getInt("Id");
String libelle = response.getString("Libelle");
Integer IsSelect = response.getInt("IsSelect");
//Create String out of the Parsed JSON
textViewData.append("CentreInteret Id: ")
.append(centreInteretId.toString()).append(NEW_LINE);
textViewData.append("Libelle: ").append(libelle).append(NEW_LINE);
textViewData.append("IsSelect: ").append(IsSelect).append(NEW_LINE);
//Populate textView with the response
mTxtDisplay.setText(textViewData.toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
pDialog.dismiss();
//Display error message whenever an error occurs
Toast.makeText(getApplicationContext(),
error.getMessage() + " lol", Toast.LENGTH_SHORT).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError{
Toast.makeText(getApplicationContext()," les params", Toast.LENGTH_SHORT).show();
Map<String,String> map = new HashMap<String,String>();
map.put("pseudo",pseudo);
//map.put("oldPassword",oldPassword);
return map;
}
};
// Access the RequestQueue through your singleton class.
MySingleton.getInstance(this).addToRequestQueue(jsArrayRequest);
}

正如您在我的代码中看到的那样,我试图通过 POST 请求发送值"test">

你知道问题出在哪里吗?

提前致谢

如果请求需要在标头中键入内容类型,则需要覆盖请求的标头 通过这种方法:

@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
params.put("Content-Type","application/x-www-form-urlencoded");
return params;
}

如果不工作,请告诉我寻找另一个解决方案.

最新更新