我刚刚开始使用LoopJ AndroidAsyncHttp库及其出色的数据上传。
但是,我现在正试图使用get请求获得响应,我似乎不明白为什么我的onSuccess和onFailure方法都没有被调用。我在这里仔细研究了这些问题,似乎找不到一个问题来解决onSuccess方法的新实现。有人能帮忙吗?
方法在ButtonClick上被调用:
public void displayUploaded(View view){
RequestParams params=new RequestParams();
try{
AsyncHttpClient client = new AsyncHttpClient();
client.get("http://192.168.1.4/clientservertest/returnUploadedImages.php",
new JsonHttpResponseHandler() {
@Override
public void onSuccess(JSONObject jsonObject) {
// Display a "Toast" message
Toast.makeText(getApplicationContext(), "Success!", Toast.LENGTH_LONG).show();
Log.d("android", jsonObject.toString());
}
@Override
public void onFailure(int statusCode, Throwable throwable, JSONObject error) {
// Display a "Toast" message
Toast.makeText(getApplicationContext(), "Error: " + statusCode + " " + throwable.getMessage(), Toast.LENGTH_LONG).show();
// Log error message
// to help solve any problems
Log.e("android", statusCode + " " + throwable.getMessage());
}
});
}
catch(Exception e){
Toast toast2=Toast.makeText(getApplicationContext(),"Failed first TRY",Toast.LENGTH_LONG);
toast2.show();
e.printStackTrace();
}
}这是我的php代码(在chrome上使用Postman客户端很好,我已经在EDIT2中发布了输出):
<?php
#Connect to Database
$con = mysqli_connect("localhost","root","", "mytestdatabase");
#Check connection
if (mysqli_connect_errno()) {
echo 'Database connection error: ' . mysqli_connect_error();
exit();
}
#Query the database to get the user details.
$userdetails = mysqli_query($con, "SELECT * FROM images");
#If no data was returned, check for any SQL errors
if (!$userdetails) {
echo 'Could not run query: ' . mysqli_error($con);
exit;
}
#Return the results
$rows = array();
while($r = mysqli_fetch_assoc($userdetails)) {
$rows[] = $r;
}
print(json_encode($rows));
?>我也尝试过使用其他ResponseHandlers做同样的事情,但这也不起作用。真希望得到答案!
编辑:添加有效的代码,并在相同的活动中完美地工作。这是员额请求:
File selectedPicture=new File(picturePath);
RequestParams params=new RequestParams();
try{
params.put("UploadedPic",selectedPicture);
AsyncHttpClient client = new AsyncHttpClient();
client.post("http://192.168.1.4/clientservertest/imageupload.php", params,new AsyncHttpResponseHandler());
}EDIT2:从php页面返回到POSTMAN客户端的响应:
{"id":"7“、”路径“:”上载/快速.path“}、{"id":"8”、“路径”:“上载/取消标题.path”}、{"id":"9“、”路径“:”上载/未标题.path“}、{"id":"10”、“路径”:“uploadsspeed_2.png”}、{"id":"11“、”路径“:”上载/速度_3.png“}}
发布于 2014-05-03 14:15:34
看起来您的服务器正在返回一个JSON数组,因此您应该尝试在您的onSuccess(JSONArray数组)方法中重写该方法。
client.get("http://192.168.1.4/clientservertest/returnUploadedImages.php",
new JsonHttpResponseHandler() {
@Override
public void onSuccess(JSONArray jsonArray) {
Toast.makeText(getApplicationContext(), "Success!", Toast.LENGTH_LONG).show();
Log.d("android", jsonArray.toString());
}
//etc...
});https://stackoverflow.com/questions/23444800
复制相似问题