Android Volley StringRequest有时会提供空婴儿车

Android Volley StringRequest有时会提供空婴儿车,android,android-volley,Android,Android Volley,我已经尝试解决这个问题一个多星期了,我有一个凌乱的字符串请求,它将反馈发送到php服务器,然后保存到数据库 android代码: final Button sendMessage = findViewById(R.id.sendMessage); sendMessage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { final S

我已经尝试解决这个问题一个多星期了,我有一个凌乱的字符串请求,它将反馈发送到php服务器,然后保存到数据库

android代码:

final Button sendMessage = findViewById(R.id.sendMessage);
sendMessage.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        final String messageFinal = message.getText().toString();

        if(messageFinal.isEmpty()){
            Toast.makeText(FeedbackActivity.this, "Message is empty!", Toast.LENGTH_LONG).show();
            return;
        }
        String sendUrl = "https://example.com/feedback.php";
        StringRequest jsonRequestSend = new StringRequest(Request.Method.POST, sendUrl, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.d("respond", response);
                try
                {
                    JSONObject respondObject = new JSONObject(response);
                    if(respondObject.get("response").equals("true")){
                        Intent homepageIntent = new Intent(FeedbackActivity.this, GlobalListActivity.class);
                        FeedbackActivity.this.startActivity(homepageIntent);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("VOLLEY", error.toString());
            }
        }){
            @Override
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<>();
                params.put("email", userEmail);
                params.put("message", messageFinal);
                return params;
            }
        };

        jsonRequestSend.setRetryPolicy(new DefaultRetryPolicy(0,-1, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        RequestQueue rQueue = Volley.newRequestQueue(FeedbackActivity.this);
        rQueue.add(jsonRequestSend);
    }
});
我在3个不同的设备上试过这个方法,效果很好,但有时我在数据库中得到的结果是空的,没有消息,也没有电子邮件。有人能帮我吗,我做错了什么

更新:

在做了进一步的挖掘之后,我现在知道,当我在标题中看到这样的内容时:User-Agent:Dalvik/2.1.0linux;U安卓9;SM-N960U构建/PPR1.180610.011 我正确地获得了数据,但当我获得这种用户代理时:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)

然后我只得到空数据,这应该在客户端还是服务器端解决,以及如何解决它

您可以防止将空数据插入数据库

if(!empty($_POST['email']) && !empty($_POST['message'])) {
        // insert into table
}

或者你可以检查android端的post数据,它是否为空。

这不完全是我的问题,问题是用户发送数据,但我得到的是空数据。
if(!empty($_POST['email']) && !empty($_POST['message'])) {
        // insert into table
}