Я писал код с Volley для этого проекта, и все остальные классы / фрагменты работали.По некоторым причинам этого просто нет.Я провел некоторый поиск и пришел к выводу, что где-то в моих параметрах есть значение NULL, но я отслеживал каждый ввод с помощью журнала и даже провел небольшую отладку.
Я не знаюв чем проблема здесь.Мои другие фрагменты работают нормально, но этот отказывается отправлять код для сценария PHP на моем сервере.Я проверил, что бэкэнд работает нормально с Почтальоном, и я получаю возвращение успеха, но с Volley он не работает.
public void send()
{
// assign values from our text inputs to variables
ReturnedUseByDateEntered = this.useByDate.getText().toString().trim();
batchCodeEntered = this.batchCode.getText().toString().trim();
returnedDate = this.finalDate.getText().toString().trim();
signatureEntered = SessionHandler.getInstance(getActivity().getApplicationContext()).getUserName();
StringRequest stringRequest = new StringRequest(StringRequest.Method.POST, URL_INSERT, new Response.Listener<String>()
{
@Override
public void onResponse(String response)
{
Log.d("DELIVERY",response);
JSONObject jsonObject = null; // declare JSON object to hold the status
try
{
jsonObject = new JSONObject(response); // get the response and store it into the JSONobject
// Get the response from PHP script on server,
// If response of the success vairable is equal to 1
// Store the return from the PHP scripts of the error tag, if its equal to false (means no error)
String result = jsonObject.getString("success");
Log.e("Response", response.toString());
if(result.equals("1"))
{
Toast.makeText(getActivity(), jsonObject.getString("message"), Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getActivity(), jsonObject.getString("message"), Toast.LENGTH_SHORT).show();
}
} catch (JSONException e)
{
e.printStackTrace();
Toast.makeText(getActivity(), "Authentication Error " + e.toString(), Toast.LENGTH_LONG).show();
}
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
Toast.makeText(getActivity(), "Authentication Failed " + error.toString(), Toast.LENGTH_LONG).show();
}
})
{
@Override
protected Map<String, String> getParams() throws AuthFailureError
{
Map<String, String> params = new HashMap<>();
params.put("date", returnedDate);
params.put("food_item", foodItemEntered);
params.put("batch_code", batchCodeEntered);
params.put("supplied_by", supplierEntered);
params.put("use_by_date", ReturnedUseByDateEntered);
params.put("temp", tempEntered);
params.put("rejected", String.valueOf(rejected));
params.put("comment", commentEntered);
params.put("signature", signatureEntered);
return params;
}
};
// This line uses the singleton method ( Session Handler Class )
// It is said to use a singleton when an application makes constant use of a network
MySingleton.getInstance(getActivity()).addToRequestQueue(stringRequest);
}
Это мой метод отправки, который вызывается при срабатывании кнопки. ПРИМЕЧАНИЕ: остальные значения присваиваются вне этого метода.Но я протестировал его с другими проектами, и он работает
