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, | ||
+ | |||
</ | </ |