2017-12-08 1 views
0

Ich versuche, eine PHP-Funktion auf einer Website, die ich von einer Android-Anwendung haben.Erhalten eine Null-Antwort beim Aufruf einer PHP-Site-Funktion von Java in Android

ich dies mit meiner Antwort zu erhalten: https://github.com/koush/ion

Hier ist meine PHP-Code, der befindet sich auf: Link Er wird verwendet, um eine Datenbank i auf dieser Website haben zu verbinden. Die PHP-Datei gibt nur alle Einträge in der Datenbank als HTML-Text unter dem PHP-Code angezeigt (Nicht sicher, ob dies der richtige Weg ist, um Daten aus einer Datenbank zu erhalten). Die Datenbankeinträge erhalten ihre eigenen Tags, damit ich sie später in der App behandeln kann.

<?php 
include('dbconnect.php'); 
if (isset($_GET['Tabela'])) { 
    DobiPodatke($_GET['Tabela']); 
} else { 
    ECHO '<error>Ni selekcije</error>'; 
} 



function DobiPodatke($Tabela) 
{ 
$sqlget = "SELECT * FROM " . $Tabela; 
ZazeniQuery($Tabela, $sqlget); 
} 


function ZazeniQuery($Ime, $Query){ 
$sqldata = mysqli_query($GLOBALS['dbcon'], $Query) or die('<error>error with fetching data</error>'); 
    ECHO '<' . $Ime . '>'; 
    while($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)){ 
     switch($Ime){ 
      case 'Sola': 
       ECHO '<vnos><Kratka_Oznaka>' . $row['Kratka_Oznaka'] . '</Kratka_Oznaka><Ime>' . $row['Ime'] . '</Ime></vnos>'; 
       break; 
      case 'Stroka': 
       ECHO '<vnos><Ime_Stroke>' . $row['Ime_Stroke'] . '</Ime_Stroke></vnos>'; 
       break; 
      case 'Sola_Smer': 
       ECHO '<vnos><ID_Sole>' . $row['ID_Sole'] . '</ID_Sole><ID_Stroke>' . $row['ID_Stroke'] . '</ID_Stroke><Stevilo_mest>' . $row['Stevilo_mest'] . '</Stevilo_mest></vnos>'; 
       break; 
     } 
    } 
    ECHO '</' . $Ime . '>'; 
} 


?> 

HTML Antwort: HTML

nun dafür, um ich zu arbeiten, müssen die PHP-Funktionsparameter liefern, auf welche Tabelle i infromation müssen aus, damit ich es so nennen:

https://illegible-deflector.000webhostapp.com/Site3/dbtest.php?Tabela=Sola

Tabela beeing die Variable I in sonst php doe passieren müssen s a sterben()

Im obigen Beispiel habe ich die PHP-Datei mit "? Tabela = Sola" am Ende aufgerufen, um alle Tabelleneinträge in der Tabelle "Sola" zu bekommen. Während dies im Browser funktioniert, ist es nicht in meiner Anwendung.

Jetzt in meiner Android-Anwendung verwende ich die Ion-Bibliothek/-Klasse, um meine Antwort von einer Website in reinem HTML-Code zu erhalten. Es funktioniert mit einer regulären Website, da ich den gesamten HTML-Code von der Website abrufen kann.

Es funktioniert jedoch nicht auf meiner PHP-Seite, da ich ein Null-Ergebnis erhalten.

Die Link-Variable in dem folgenden Code ist:

https://illegible-deflector.000webhostapp.com/Site3/dbtest.php?Tabela=Sola

Java-Code, der auf der Website verbindet und gibt das Ergebnis:

private static void ParseDBFront(String link, Context context){ 
    Ion.with(context).load(link).setLogging("MyLogs", Log.DEBUG).asString().setCallback(new FutureCallback<String>() { 
     @Override 
     public void onCompleted(Exception e, String result) { 
      Log.i("LOG", "LOG: " + result); 
     } 
    }); 
} 

Und die Antwort, die ich erhalten aus dem obigen Code beim Ausführen ist:

I/LOG: LOG: null

Alles, was ich für den Java-Code benötigen Sie den HTML-Code zurück, aber ich habe keine Ahnung, warum es den HTML-Code nicht zurück. Ich vermute, dass ich meine Variable in der falschen Weise analysiere.

Ich freue mich über jede Rückmeldung oder Lösungen für dieses Problem.

+0

Ich bekomme auch diese Null auf jedes Mal, wenn ich die apk ausführen und installieren und Daten vom Server in den Emulator anfordern. Aber wenn ich das zweite Mal frage, ist es in Ordnung. –

+0

@Md.SojibAhmed können Sie weiter erklären, was genau Sie getan haben, um es auf die zweite Anfrage zu bekommen? – Official229

Antwort

0

verwaltet, um es selbst herauszufinden. Es gab keine Probleme mit dem Code wie es war, das Problem war die Art, wie ich die URL meiner PHP-Datei geschrieben habe.

Original-Link:

private static final String DBLink = "www.illegible-deflector.000webhostapp.com/Site3/dbtest.php?Tabela=";

Und wie ich es fest:

private static final String DBLink = "https://illegible-deflector.000webhostapp.com/Site3/dbtest.php?Tabela=";

Das "www."/"https: //" Unterschied ist alles, was dazu führte, dass mein Programm aus irgendeinem Grund eine Null-Antwort zurückgibt.

Ich weiß nicht warum, aber das Problem ist weg.

Verwandte Themen