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(); }
3 Réponses :
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.
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.
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);
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!