GxRest/GxJRS/Requests
From Gcube Wiki
Introduction
Types of Requests
GXHTTPRequest
GXWebTargetAdapterRequest
A basic example that sends a Post request to create a new resource:
import org.gcube.common.gxrest.response.inbound.GXInboundResponse; import org.gcube.common.gxrest.request.GXWebTargetAdapterRequest; import javax.ws.rs.client.Entity; import javax.ws.rs.core.MediaType; //... GXWebTargetAdapterRequest request = GXWebTargetAdapterRequest.newRequest("http://host:port/service/").from("GXRequestTest") String context ="json serialization (not shown"; Map<String,String> queryParams = new WeakHashMap<>(); queryParams.put("rrURL", DEFAULT_RR_URL); String DEFAULT_RR_URL = "url of resource registry to contact"; GXInboundResponse response = request.path("resource-manager") .queryParams(queryParams).withEntity(Entity.entity(context, MediaType.APPLICATION_JSON)).post(); if (!response.hasCREATEDCode()) { if (response.hasException()) { try { throw response.getException(); } catch (ClassNotFoundException e) { //can't rebuild the exception locally (not on the classpath?) } catch (Exception e) { e.printStackTrace(); throw e; } } } else { logger.info("Resource successfully created!"); logger.info("Returned message: " + response.getStreamedContentAsString()); }
By default, it attaches to the request the security token available in the current thread.
However, if there is the need to force a specific token to be used, it can be done by invoking the setSecurityToken() method on the request object:
GXWebTargetAdapterRequest request = GXWebTargetAdapterRequest.newRequest("http://host:port/service/").from("GXRequestTest") request.setSecurityToken("my token");