Я работал над проектом Android, где я хочу показать все данные, которые хранятся в базе данных. Я уже сделал эту часть, но проблема в том, что я могу получить данные от локальный но когда я перехожу на хост-сервер, он не дает мне никаких данных. Я подключился к серверу и могу получить доступ к определенному файлу php, но он возвращает пустую строку JSON, где есть данные.
Вот мой класс подключения:
public class Connecter {
public static HttpURLConnection connect (String urlAddress){
try {
URL url = new URL(urlAddress);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
///////Setting properties to con object
con.setRequestMethod("POST");
con.setConnectTimeout(20000);
con.setReadTimeout(20000);
con.setDoInput(true);
con.setDoOutput(true);
////////Returning the Con object
return con;} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
Я пишу, используя другой класс.
И вот процесс, который я использую для передачи URL-адреса конкретного файла php:
String address2 = "http://www.tutorshubbd.com/android/allTeacher.php";
Log.d(TAG," .............///..........Primary Data Display ");
String query = "";
SendGetAllTeachers sg2 = new SendGetAllTeachers(ActivityTeacher.this,address2,query,listViewTeachers,ivNoData,ivNoInternet);
sg2.execute();
Вот конкретный php-файл, который я использую:
<?php$host ='tutorshubbd.com';
$username = 'cpanel_username';
$pwd = 'cpanel_password';
$db = 'tutorshu_db';
$con = mysqli_connect($host, $username, $pwd, $db) or die('Unable to connect');
if (mysqli_connect_error($con)) {
echo "Failed to connect to the DataBase".mysqli_connect_error();
}
$name = $_POST['Query'];$sql = "SELECT * FROM Teacher WHERE Name LIKE '%$name%'";
$query = mysqli_query($con, $sql);
if ($query) {
while ($row = mysqli_fetch_array($query)) {
$data[] = $row;
}
print(json_encode($data));
}else{
echo "Not Found!";
}
mysqli_close($con);
?>
В заголовке вашего ответа нет значений Content-Type. Вы должны добавить в свой php-код эту строку перед печатью данных.
header('Content-type:application/json;charset=utf-8');
Других решений пока нет …