Différences
Ci-dessous, les différences entre deux révisions de la page.
| 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] jcheron | slam4: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' | + | Implémmenter la méthode restPostJSON : |
| + | <sxh java; | ||
| + | ... | ||
| + | public String restPostJSON(String urlToRead, Object o) throws ClientProtocolException, | ||
| + | String result = ""; | ||
| + | CloseableHttpClient httpClient = HttpClients.createDefault(); | ||
| + | try { | ||
| + | HttpPost postRequest = new HttpPost(urlToRead); | ||
| + | postRequest.setHeader(" | ||
| + | postRequest.setHeader(" | ||
| + | String jsonString = gson.toJson(o); | ||
| + | StringEntity params = new StringEntity(jsonString); | ||
| + | params.setContentType(" | ||
| + | params.setContentEncoding(" | ||
| + | postRequest.setEntity(params); | ||
| + | ResponseHandler< | ||
| + | result = httpClient.execute(postRequest, | ||
| + | } finally { | ||
| + | httpClient.close(); | ||
| + | } | ||
| + | return result; | ||
| + | } | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | Modifier la méthode **main** de la classe pour tester le restPostJSON : | ||
| + | |||
| + | <sxh java; | ||
| + | ... | ||
| + | public static void main(String args[]) { | ||
| + | TestHttp test = new TestHttp(); | ||
| + | |||
| + | try { | ||
| + | ... | ||
| + | System.out.println(test.restPostJSON( | ||
| + | " | ||
| + | |||
| + | } catch (IOException e) { | ||
| + | e.printStackTrace(); | ||
| + | } | ||
| + | } | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== -- POST Classique ===== | ||
| + | |||
| + | Le post classique | ||
| * La conversion en JsonObject de l' | * La conversion en JsonObject de l' | ||
| * L' | * L' | ||
| Ligne 203: | Ligne 251: | ||
| - | Implémmenter la méthode | + | Implémmenter la méthode |
| <sxh java; | <sxh java; | ||
| ... | ... | ||
| Ligne 233: | Ligne 281: | ||
| </ | </ | ||
| - | 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; | <sxh java; | ||
| Ligne 244: | Ligne 292: | ||
| System.out.println(result); | System.out.println(result); | ||
| - | System.out.println(c.postJSON( | + | System.out.println(test.postJSON( |
| " | " | ||
| " | " | ||
| Ligne 253: | Ligne 301: | ||
| } | } | ||
| ... | ... | ||
| + | </ | ||
| + | |||
| + | ===== -- Session ===== | ||
| + | |||
| + | Pour conserver la session, on instancie un HttpContext, | ||
| + | |||
| + | |||
| + | <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, | ||
| + | } | ||
| + | |||
| + | public TestHttp() { | ||
| + | gson = new GsonBuilder().setDateFormat(" | ||
| + | createCookieStore(); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Utilisation et passage du HttpContext : | ||
| + | <sxh java> | ||
| + | result = httpClient.execute(getRequest, | ||
| + | ... | ||
| + | result = httpClient.execute(postRequest, | ||
| + | |||
| </ | </ | ||