Je dois télécharger un fichier dans GWT en arrière-plan, c'est-à-dire. pas d'un widget visuel. Pour cela, j'ai trouvé la classe RequestBuilder, mais peu de documentation sur la façon de l'utiliser à des fins de téléchargement.Téléchargement de fichier avec RequestBuilder
Le contenu du fichier que je dois télécharger est 100% en texte brut.
Mon code si loin ressemble à ceci:
final String filename = UUID.randomUUID().toString() + ".txt";
RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, "http://localhost/upload");
rb.setRequestData(selected.getBody()); // getBody() is plain-text
rb.setHeader("Content-Type", "application/x-www-form-urlencodeddata");
rb.setCallback(new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
w.setUrl("http://localhost/magic.html?hide=status&open=" + filename);
w.show();
w.maximize();
}
@Override
public void onError(Request request, Throwable exception) {
exception.printStackTrace();
}
});
// Checked Exceptions sucks *sigh*
try {
rb.send();
}
catch (RequestException e) {
e.printStackTrace();
}
J'espère que quelqu'un peut me donner quelques conseils pour résoudre ce problème, merci!
Ce n'est pas une opération de navigateur, il est une requête HTTP de base envoyé à partir d'une jetée (Java EE Application Server). Ce qui est parfaitement réalisable (d'où la raison pour laquelle RequestBuilder existe en premier lieu), sauf que je ne sais pas comment générer la requête de format correct. –
oke Je suis perdu maintenant ;-) Le RequestBuilder que je connais est une classe côté client GWT compilée en JavaScript, qui s'exécute dans le navigateur. Donc, quand vous dites «télécharger», voulez-vous dire «envoyer au serveur depuis le navigateur» ou de l'autre côté, ou le navigateur n'a rien à voir avec tout cela? et avec "demande HTTP envoyée de" vous voulez dire "de la jetée au navigateur" ou l'inverse? –