我正在使用Volley,方法是将其包含在gradle依赖项中。
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;
}这在我身上持续了20天,没有任何抱怨。但是,从昨天开始,用户突然发布了空字符串,我在php中签入了$_POST['word']确实是空的。我认为用户可能会在输入中键入双引号,但情况并非如此,因为我在没有双quotes.This的情况下进行了测试,这与我通过编译compile 'com.loopj.android:android-async-http:1.4.9'而使用compile 'com.loopj.android:android-async-http:1.4.9'发布的字符串相同。这让我很困惑。如果一个库工作了几天,突然停止了对同一输入的工作,那么它怎么会停止工作呢?
问题解决了问题,问题是:如果我将post作为简单的Json接收,我将得到一个有效的Json对象,如果作为$word = $mysqli->real_escape_string($_POST['word']);接收,则会得到带有转义字符的无效Json对象。我根据用户的投诉将代码修改为后者,而问题是用户的网络连接性。
发布于 2017-03-28 02:22:02
我是新手,但我会尽力帮忙的。您可以通过添加"okhttp“http://square.github.io/okhttp/
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里面使用它,希望它能帮上忙
https://stackoverflow.com/questions/43059452
复制相似问题