1
votes

Comment puis-je obtenir des données de la page php (sans json)?

J'ai ce site ( http://www.usadebtclock.com/ us-dette-horloge-widget.php ) et je veux en obtenir un numéro (il n'y a pas de JSON) vers mon application de studio Android à l'aide de retrofit 2 et afficher ce numéro dans la vue texte. Quelle usine de convertisseur dois-je utiliser à la place GsonConverterFactory? Ou comment puis-je obtenir un numéro de cette page vers ma vue texte?

J'ai essayé d'utiliser GsonConverterFactory.create () pour cela, mais il n'a pas répondu et a montré un journal de méthode onFailure

Voici MainActivity.class (avec GsonConverterFactory inutile):

public interface DolgAPI {

    String HOST = "http://www.usadebtclock.com";

    @GET("us-debt-clock-widget.php")
    Call<String> getDolg();

}


7 commentaires

ce n'est pas un numéro unique, c'est une page HTML avec Javascript en cours d'exécution, qui change la valeur. Vous ne pouvez pas obtenir cette valeur sans évaluer le javascript


Vous pouvez utiliser WebView si vous souhaitez afficher des données en temps réel.


@VladyslavMatviienko comment puis-je charger cette page et évaluer javascript pour obtenir de la valeur?


WebView semble la voie à suivre, vérifiez ceci stackoverflow.com/questions/40889152/...


utiliser WebView est le moyen le plus simple à mon avis. Vous voudrez peut-être aussi savoir que la valeur sur la page n'est qu'un mannequin et qu'elle est calculée par JavaScript uniquement. Il n'est pas chargé de quelque part sur Internet. Vous pouvez donc simplement créer une logique similaire dans votre application.


Vous pouvez consulter ce lien pour en savoir plus sur WebView


@PratikButani merci, j'ai utilisé WebView et ça marche!


3 Réponses :


-1
votes

Tout d'abord, il ressemble au site Web s'il n'est pas fonctionnel car il ne se charge pas. Mais si vous supposez que cela fonctionne et que vous n'avez pas de GET / endpoint, vous recevrez le document HTML entier, et vous devrez l'analyser via des balises html pour récupérer le texte requis.


0 commentaires

-1
votes

Vous devez utiliser ResponseBody

<span id="debt-clock">$21,954,170,905,365.84</span>

Ensuite, vous devez analyser le code HTML. Retours de prêt dans ce format

getDolg() should return Call<ResponseBody>

Vous pouvez analyser le HTML en utilisant regex.


0 commentaires

0
votes

J'ai utilisé WebView pour afficher la valeur de ce site

Il contient du JavaScript, j'ai donc utilisé les lignes suivantes pour permettre l'exécution de scripts Web dans l'application:

WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);


0 commentaires