Android截击向php发送空字符串

Android截击向php发送空字符串,php,android,android-volley,Php,Android,Android Volley,我使用截击,将其作为 compile 'com.android.volley:volley:1.0.0' 现在我发布了一个类似这样的字符串 word = "{\"question\":\""+answer+"\", \"option\":\""+choice+"\"}"; 在请求参数中 @Override protected Map<String, String> getParams() throws AuthFailureError {

我使用截击,将其作为

compile 'com.android.volley:volley:1.0.0'
现在我发布了一个类似这样的字符串

word = "{\"question\":\""+answer+"\", \"option\":\""+choice+"\"}";
在请求参数中

@Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<String, String>();
            params.put("word", word);
            params.put("uid", String.valueOf(user_id));
            return params;
        }
@覆盖
受保护的映射getParams()引发AuthFailureError{
Map params=新的HashMap();
参数put(“单词”,单词);
参数put(“uid”,String.valueOf(user_id));
返回参数;
}
这对我有效了20天,没有任何抱怨。但是从昨天开始,用户突然发布了空字符串。我在php中检查了
$\u POST['word']
确实是空的。我原以为用户可能在输入中输入了双引号,但事实并非如此,因为我测试了不带双引号的输入。我使用AsyncHttpResponseHandler通过编译
compile'com.loopj.android:android async http:1.4.9'
发布了同样的字符串,它可以工作。这让我很困惑。一个工作了几天却突然停止为同一输入工作的库怎么可能呢

问题已解决
问题是:如果我收到的帖子仅仅是
$word=$\u post['word']我得到一个有效的Json对象,如果我作为
$word=$mysqli->real\u escape\u字符串($\u POST['word'])接收我得到了带有转义字符的无效Json对象。在一位用户投诉时,我将代码修改为后者,而问题是他的网络连接

我是新手,但我会尽力帮忙的。 您可以通过添加

compile 'com.squareup.okhttp3:okhttp:3.6.0' 
并使用此代码

OkHttpClient client = new OkHttpClient();

RequestBody requestBody = new MultipartBody.Builder()
                        .setType(MultipartBody.FORM)
                        .addFormDataPart("word", word)
                        .addFormDataPart("uid", String.valueOf(user_id))
                        .build();

                Request request = new Request.Builder()
                        .url("https://yourwebsite.com/post.php")
                        .post(requestBody)
                        .build();

                Response response = client.newCall(request).execute();
记住在AsyncTask中使用它,
希望能有所帮助

我是新手,但我会尽力帮忙。 您可以通过添加

compile 'com.squareup.okhttp3:okhttp:3.6.0' 
并使用此代码

OkHttpClient client = new OkHttpClient();

RequestBody requestBody = new MultipartBody.Builder()
                        .setType(MultipartBody.FORM)
                        .addFormDataPart("word", word)
                        .addFormDataPart("uid", String.valueOf(user_id))
                        .build();

                Request request = new Request.Builder()
                        .url("https://yourwebsite.com/post.php")
                        .post(requestBody)
                        .build();

                Response response = client.newCall(request).execute();
记住在AsyncTask中使用它, 希望它能有所帮助

我已经说过AsyncHttpResponseHandler是有效的。OkHttpClient也可能如此。但我需要知道截击到底发生了什么……我已经说过AsyncHttpResponseHandler是有效的。OkHttpClient也可能如此。但我需要知道截击到底发生了什么。。。