2010-12-07 6 views
2

J'utilise GWT et je a besoin d'interroger ce serviceQuery Service GWT

"https://www.google.com/accounts/RatePassword?Passwd={0}" qui chercher une réponse

Répondre

2

Il suffit de relire la question, si cette sortie est venue de votre propre serveur (ce qui est évidemment pas), quelque chose comme cela aurait fonctionné:

RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); 
try { 
    builder.sendRequest(null, new RequestCallback() { 
     @Override public void onError(Request request, Throwable exception) { 
      Window.alert("Error: " + exception.toString()); 
     } 
     @Override public void onResponseReceived(Request request, Response response) { 

      Window.alert(response.getStatusText()); 
      Window.alert("Result="+response.getText()); 
     } 
    }); 
} catch (RequestException e) { 
    Window.alert("ERROR:"+e.getMessage()); 
} 

Il ne fonctionnera pas demander directement à partir d'une télécommande serveur en raison de SOP (même règle d'origine) en cours d'exécution. La première option est de faire la demande sur le serveur, peut-être mettre en cache les résultats et ensuite faire une demande à votre propre serveur pour obtenir les données. Python a une bibliothèque HTMLLib qui vous permettra de faire exactement cela (au cas où vous utilisez un backend Python), sinon (pour les backends en PHP/JAVA/PERL/C++ ... à moins qu'ils aient leurs propres bibliothèques pertinentes), Vous devrez effectuer une programmation réseau manuelle pour ouvrir une connexion à cet hôte sur le port 443 et relire le résultat.

Si vous voulez faire la demande directement à partir de GWT et ignorer les complexités du backend, alors vous devrez ajouter un peu de JSNI qui vous permettra d'écrire du JavaScript dans GWT. J'ai vu un exemple dans l'application GWT StockWatcher où JSNI est utilisé pour lire JSON depuis un hôte externe, peut-être l'utiliser comme point de départ.

L'alternative la plus simple consiste simplement à écrire votre propre algorithme de notation de mot de passe basé sur des algorithmes disponibles sur le net.

Bonne chance :-)

1

Jetez un oeil aux classes com.google.gwt.http.client.Request et com.google.gwt.http.client.RequestBuilder, elle est utilisée pour faire des requêtes HTTP et à l'intérieur de la fonction de rappel, vous pouvez traiter le résultat. Avoir un exemple de code à la maison si vous avez besoin d'un exemple, mettra à jour ce soir.