Bonjour,
J'ai développé une API qui permet de faire des requêtes via Websocket et de récupérer un historique de valeur.
La requête se fait dans le format JSON, et la réponse est pour le moment envoyée dans le format JSON également mais j'aimerais pouvoir choisir entre du JSON et du XLSX (Excel).
Faut-il implémenter cela d'une manière différente que de simplement renvoyer du "texte" au client ?
Je vous met le code du ServerEndpoint et de l'Encoder :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 @ServerEndpoint( value = "/test", encoders = { TextEncoder.class }, decoders = RequestDecoder.class ) public class MongoInterfaceEndpoint { @OnMessage public void onMessage(AbstractRequest request, Session session) { IResponse response = null; if (request instanceof TextRequest) { response = new TextResponse("texte envoyé tel quel."); } session.getAsyncRemote().sendObject(response); } }Est ce que pour donner la possibilité au client de télécharger je dois utiliser la classe Encoder.Binary<> ou une autre ? ou alors Encoder.Text suffit ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class TextEncoder implements Encoder.Text<TextResponse> { @Override public String encode(TextResponse resp) throws EncodeException { StringWriter sWriter = new StringWriter(); JsonWriter jsonWriter = Json.createWriter(sWriter); JsonObject jsonObject = Json.createObjectBuilder() .add("text", resp.getText()) .build(); jsonWriter.writeObject(jsonObject); jsonWriter.close(); return sWriter.toString(); } @Override public void init(EndpointConfig ec) { } @Override public void destroy() { } }
Merci
Partager