Я только начал использовать библиотеку LoopJ AndroidAsyncHttp, и она отлично подходит для загрузки данных.
Однако сейчас я пытаюсь получить ответ, используя запрос на получение, и я не могу понять, почему не вызываются ни мои методы 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-код (который отлично работает с использованием Postman Client в chrome, я опубликовал вывод в 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: ответ возвращается клиенту POSTMAN со страницы php:
[{"id":"7","path":"uploads/speed.png"},{"id":"8","path":"uploads/Untitled.png"},{"id": "9","path":"uploads/Untitled.png"},{"id":"10","path":"uploadsspeed_2.png"},{"id":"11","path": "загрузки/скорость_3.png"}]