slam4:gui:rest

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
slam4:gui:rest [2015/03/15 20:07] – [3.2- POST] jcheronslam4:gui:rest [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 197: Ligne 197:
 ==== -- POST ==== ==== -- POST ====
  
-Le post est légèrement plus complexe, puisqu'il nécessite :+Implémmenter la méthode restPostJSON : 
 +<sxh java;title:test/TestHttp.java> 
 + ... 
 + public String restPostJSON(String urlToRead, Object o) throws ClientProtocolException, IOException { 
 + String result = ""; 
 + CloseableHttpClient httpClient = HttpClients.createDefault(); 
 + try { 
 + HttpPost postRequest = new HttpPost(urlToRead); 
 + postRequest.setHeader("content-type", "application/json"); 
 + postRequest.setHeader("Accept", "application/json"); 
 + String jsonString = gson.toJson(o); 
 + StringEntity params = new StringEntity(jsonString); 
 + params.setContentType("application/json"); 
 + params.setContentEncoding("UTF-8"); 
 + postRequest.setEntity(params); 
 + ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
 + result = httpClient.execute(postRequest, responseHandler); 
 + } finally { 
 + httpClient.close(); 
 +
 + return result; 
 +
 + ... 
 +</sxh> 
 + 
 +Modifier la méthode **main** de la classe pour tester le restPostJSON : 
 + 
 +<sxh java;title:test/TestHttp.java;highlight:[9,10,11]> 
 + ... 
 + public static void main(String args[]) { 
 + TestHttp test = new TestHttp(); 
 + 
 + try { 
 + ... 
 + System.out.println(test.restPostJSON( 
 + "http://127.0.0.1/[restServer]/mondes", new Monde("Nouveau"))); 
 + 
 + } catch (IOException e) { 
 + e.printStackTrace(); 
 +
 +
 + ... 
 +</sxh> 
 + 
 + 
 + 
 +===== -- POST Classique ===== 
 + 
 +Le post classique est légèrement plus complexe, puisqu'il nécessite :
   * La conversion en JsonObject de l'objet à poster   * La conversion en JsonObject de l'objet à poster
   * L'envoi dans l'en-tête HTTP des couples nomDeMembre/valeur de l'objet   * L'envoi dans l'en-tête HTTP des couples nomDeMembre/valeur de l'objet
Ligne 203: Ligne 251:
  
  
-Implémmenter la méthode getHttp :+Implémmenter la méthode postJSON :
 <sxh java;title:test/TestHttp.java> <sxh java;title:test/TestHttp.java>
  ...  ...
Ligne 233: Ligne 281:
 </sxh> </sxh>
  
-Modifier la méthode **main** de la classe pour tester le POST, il s'agit ici d'un exemple avec une classe User :+Modifier la méthode **main** de la classe pour tester le POST classique, il s'agit ici d'un exemple avec une classe User :
  
 <sxh java;title:test/TestHttp.java;highlight:[9,10,11]> <sxh java;title:test/TestHttp.java;highlight:[9,10,11]>
Ligne 244: Ligne 292:
  System.out.println(result);  System.out.println(result);
  
- System.out.println(c.postJSON(+ System.out.println(test.postJSON(
  "http://127.0.0.1/[restServer]/user/connect", new User(  "http://127.0.0.1/[restServer]/user/connect", new User(
  "admin@local.fr", "0000")));  "admin@local.fr", "0000")));
Ligne 253: Ligne 301:
  }  }
  ...  ...
 +</sxh>
 +
 +===== -- Session =====
 +
 +Pour conserver la session, on instancie un HttpContext, qui sera passé à toutes les requêtes.
 +
 +
 +<sxh java>
 +
 + private HttpContext httpContext;
 + private CloseableHttpClient httpClient;
 + private CookieStore cookieStore;
 +
 + protected void createCookieStore() {
 + httpClient = HttpClients.createDefault();
 + cookieStore = new BasicCookieStore();
 + httpContext = new BasicHttpContext();
 + httpContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore);
 + }
 +
 + public TestHttp() {
 + gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
 + createCookieStore();
 + }
 +</sxh>
 +
 +Utilisation et passage du HttpContext :
 +<sxh java>
 + result = httpClient.execute(getRequest, responseHandler, httpContext);
 + ...
 + result = httpClient.execute(postRequest, responseHandler, httpContext);
 +
 </sxh> </sxh>
  • slam4/gui/rest.1426446427.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)