com.sun.jersey.api.client.Client类的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(13.4k)|赞(0)|评价(0)|浏览(586)

本文整理了Java中com.sun.jersey.api.client.Client类的一些代码示例,展示了Client类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Client类的具体详情如下:
包路径:com.sun.jersey.api.client.Client
类名称:Client

Client介绍

[英]The main class for creating WebResource instances and configuring the properties of connections and requests.

ClientFilter instances may be added to the client for filtering requests and responses, including those of WebResource instances created from the client.

A client may be configured by passing a ClientConfig instance to the appropriate constructor.

Methods to create instances of WebResource are thread-safe. Methods that modify configuration and or filters are not guaranteed to be thread-safe.

The creation of a Client instance is an expensive operation and the instance may make use of and retain many resources. It is therefore recommended that a Client instance is reused for the creation of WebResource instances that require the same configuration settings.

A client may integrate with an IoC framework by passing a IoCComponentProviderFactory instance to the appropriate constructor.
[中]用于创建WebResource实例和配置连接和请求属性的主类。
可以将ClientFilter实例添加到客户端以过滤请求和响应,包括从客户端创建的WebResource实例的请求和响应。
可以通过将ClientConfig实例传递给适当的构造函数来配置客户端。
创建WebResource实例的方法是线程安全的。修改配置和/或筛选器的方法不能保证线程安全。
Client实例的创建是一项昂贵的操作,该实例可能会使用并保留许多资源。因此,建议在创建需要相同配置设置的WebResource实例时重用Client实例。
客户端可以通过将IoCComponentProviderFactory实例传递给适当的构造函数来与IoC框架集成。

代码示例

代码示例来源:origin: apache/usergrid

DefaultClientConfig clientConfig = new DefaultClientConfig();
Client client = Client.create( clientConfig );
WebResource resource = client.resource( endpoint ).path( "/status" );
    .queryParam( RestParams.COMMIT_ID, props.getProperty( Project.GIT_UUID_KEY ) )
    .queryParam( RestParams.MODULE_ARTIFACTID, props.getProperty( Project.ARTIFACT_ID_KEY ) )
    .queryParam( RestParams.MODULE_GROUPID, props.getProperty( Project.GROUP_ID_KEY ) )
    .queryParam( RestParams.MODULE_VERSION, props.getProperty( Project.PROJECT_VERSION_KEY ) )
    .queryParam( RestParams.USERNAME, username )
    .type( MediaType.APPLICATION_JSON )
    .accept( MediaType.APPLICATION_JSON )
    .post( ClientResponse.class );
if( resp.getStatus() != Response.Status.OK.getStatusCode() &&
    resp.getStatus() != Response.Status.CREATED.getStatusCode() ) {
  LOG.error( "Could not get the status from coordinator, HTTP status: {}", resp.getStatus() );
  LOG.error( "Error Message: {}", resp.getEntity( String.class ) );

代码示例来源:origin: pentaho/pentaho-kettle

/**
 * Use REST API to authenticate provided credentials
 * 
 * @throws Exception
 */
@VisibleForTesting
void authenticateLoginCredentials() throws Exception {
 KettleClientEnvironment.init();
 if ( client == null ) {
  ClientConfig clientConfig = new DefaultClientConfig();
  clientConfig.getFeatures().put( JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE );
  client = Client.create( clientConfig );
  client.addFilter( new HTTPBasicAuthFilter( username, Encr.decryptPasswordOptionallyEncrypted( password ) ) );
 }
 WebResource resource = client.resource( url + AUTHENTICATION + AdministerSecurityAction.NAME );
 String response = resource.get( String.class );
 if ( !response.equals( "true" ) ) {
  throw new Exception( Messages.getInstance().getString( "REPOSITORY_CLEANUP_UTIL.ERROR_0012.ACCESS_DENIED" ) );
 }
}

代码示例来源:origin: stackoverflow.com

HttpClient apacheClient = HttpClientBuilder.create().build();
Client client = new Client(new ApacheHttpClient4Handler(apacheClient,
                            new BasicCookieStore(),
                            true));
WebResource webResource = client.resource("http://localhost:8080/path");
ClientResponse response = webResource.accept("application/json")
                   .get(ClientResponse.class);

代码示例来源:origin: stackoverflow.com

Client client = Client.create();
client.addFilter(new LoggingFilter(System.out));
WebResource webResource = client.resource("http://localhost:9998/");
ClientResponse response = webResource.accept(MediaType.APPLICATION_JSON)
                     .get(ClientResponse.class);

代码示例来源:origin: apache/incubator-druid

public OpentsdbSender(
  String host,
  int port,
  int connectionTimeout,
  int readTimeout,
  int flushThreshold,
  int maxQueueSize,
  long consumeDelay
)
{
 this.flushThreshold = flushThreshold;
 this.consumeDelay = consumeDelay;
 eventQueue = new ArrayBlockingQueue<>(maxQueueSize);
 scheduler = Executors.newScheduledThreadPool(2, new ThreadFactoryBuilder()
   .setDaemon(true)
   .setNameFormat("OpentsdbEventSender-%s")
   .build());
 eventConsumer = new EventConsumer();
 client = Client.create();
 client.setConnectTimeout(connectionTimeout);
 client.setReadTimeout(readTimeout);
 webResource = client.resource("http://" + host + ":" + port + PATH);
}

代码示例来源:origin: magefree/mage

public static boolean sendMessage(String email, String subject, String text) {
    if (email.isEmpty()) {
      logger.info("Email is not sent because the address is empty");
      return false;
    }
    Client client = Client.create();
    client.addFilter(new HTTPBasicAuthFilter("api", ConfigSettings.instance.getMailgunApiKey()));
    String domain = ConfigSettings.instance.getMailgunDomain();
    WebResource webResource = client.resource("https://api.mailgun.net/v3/" + domain + "/messages");
    MultivaluedMapImpl formData = new MultivaluedMapImpl();
    formData.add("from", "XMage <postmaster@" + domain + '>');
    formData.add("to", email);
    formData.add("subject", subject);
    formData.add("text", text);
    ClientResponse response =  webResource.type(MediaType.APPLICATION_FORM_URLENCODED).post(ClientResponse.class, formData);
    boolean succeeded = response.getStatus() == 200;
    if (!succeeded) {
      logger.error("Error sending message to " + email + ". Status code: " + response.getStatus());
    }
    return succeeded;
  }
}

代码示例来源:origin: neo4j/neo4j

@Test
public void shouldUseXForwardedProtoHeaderWhenPresent()
{
  // when
  ClientResponse response = client.resource( getManageUri() )
      .accept( APPLICATION_JSON )
      .header( X_FORWARDED_PROTO, "https" )
      .get( ClientResponse.class );
  // then
  String entity = response.getEntity( String.class );
  assertTrue( entity.contains( "https://localhost" ) );
  assertFalse( entity.contains( "http://localhost" ) );
}

代码示例来源:origin: pentaho/pentaho-kettle

public <T> T getAsJson( com.sun.jersey.api.client.GenericType<T> returnType ) {
 UriBuilder localUriBuilder = _uriBuilder.clone();
 com.sun.jersey.api.client.WebResource resource =
   _client.resource( localUriBuilder.buildFromMap( _templateAndMatrixParameterValues ) );
 com.sun.jersey.api.client.WebResource.Builder resourceBuilder = resource.getRequestBuilder();
 resourceBuilder = resourceBuilder.accept( "application/json" );
 com.sun.jersey.api.client.ClientResponse response;
 response = resourceBuilder.method( "GET", com.sun.jersey.api.client.ClientResponse.class );
 if ( response.getStatus() >= 400 ) {
  throw new PentahoDiPlugin.WebApplicationExceptionMessage( Response
    .status( response.getClientResponseStatus() ).build() );
 }
 return response.getEntity( returnType );
}

代码示例来源:origin: Netflix/eureka

@Override
public EurekaHttpResponse<Void> cancel(String appName, String id) {
  String urlPath = "apps/" + appName + '/' + id;
  ClientResponse response = null;
  try {
    Builder resourceBuilder = jerseyClient.resource(serviceUrl).path(urlPath).getRequestBuilder();
    addExtraHeaders(resourceBuilder);
    response = resourceBuilder.delete(ClientResponse.class);
    return anEurekaHttpResponse(response.getStatus()).headers(headersOf(response)).build();
  } finally {
    if (logger.isDebugEnabled()) {
      logger.debug("Jersey HTTP DELETE {}/{}; statusCode={}", serviceUrl, urlPath, response == null ? "N/A" : response.getStatus());
    }
    if (response != null) {
      response.close();
    }
  }
}

代码示例来源:origin: org.apache.airavata/airavata-rest-client

private com.sun.jersey.api.client.WebResource getUserWFRegistryBaseResource() {
  ClientConfig config = new DefaultClientConfig();
  config.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING,
      Boolean.TRUE);
  Client client = Client.create(config);
  WebResource baseWebResource = client.resource(getBaseURI());
  webResource = baseWebResource.path(
      ResourcePathConstants.UserWFConstants.REGISTRY_API_USERWFREGISTRY);
  return webResource;
}

代码示例来源:origin: Netflix/Priam

private String getIp(String host, String token) throws ParseException {
  ClientConfig config = new DefaultClientConfig();
  Client client = Client.create(config);
  String baseURI = getBaseURI(host);
  WebResource service = client.resource(baseURI);
        service.path("Priam/REST/v1/cassadmin/gossipinfo")
            .accept(MediaType.APPLICATION_JSON)
            .get(ClientResponse.class);
    if (clientResp.getStatus() != 200) return null;
    textEntity = clientResp.getEntity(String.class);

代码示例来源:origin: com.atlassian.jira.plugins/jira-dvcs-connector-pageobjects

private RepositoryList getRepositories(RestUrlBuilder url) {
  ClientConfig clientConfig = new DefaultClientConfig();
  clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
  Client client = Client.create(clientConfig);
  return client.resource(url.toString()).accept(MediaType.APPLICATION_JSON_TYPE).get(RepositoryList.class);
}

代码示例来源:origin: apache/usergrid

@Override
  public int getNextRunNumber( final Project project ) {
    WebResource resource = Client.create().resource( coordinatorFig.getEndpoint() );
    resource = addQueryParameters( resource, project, me );
    Integer result = resource.path( coordinatorFig.getRunNextPath() )
                 .type( MediaType.APPLICATION_JSON_TYPE )
                 .get( Integer.class );

    LOG.debug( "Got back result from next run number get = {}", result );

    return result;
  }
}

代码示例来源:origin: apache/cloudstack

ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource webResource = client.resource(UriBuilder.fromUri(restprotocol + elastiCenterAddress + restpath).build());
  System.out.println("Command Sent " + command + " : " + queryParams);
ClientResponse response = webResource.queryParams(queryParams).accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
if (response.getStatus() >= 300) {
  if (debug)
    System.out.println("ElastiCenter returned error code : " + response.getStatus());
  if (401 == response.getStatus()) {
    throw new InvalidCredentialsException("Please specify a valid API Key.");
  } else if (431 == response.getStatus()) {

代码示例来源:origin: Netflix/conductor

OAuthParameters params = new OAuthParameters().consumerKey(input.oauthConsumerKey).signatureMethod("HMAC-SHA1").version("1.0");
  OAuthSecrets secrets = new OAuthSecrets().consumerSecret(input.oauthConsumerSecret);
  client.addFilter(new OAuthClientFilter(client.getProviders(), params, secrets));
Builder builder = client.resource(input.uri).type(input.contentType);
  builder.entity(input.body);
try {
  ClientResponse cr = builder.accept(input.accept).method(input.method, ClientResponse.class);
  if (cr.getStatus() != 204 && cr.hasEntity()) {
    response.body = extractBody(cr);
  response.statusCode = cr.getStatus();
  response.reasonPhrase = cr.getStatusInfo().getReasonPhrase();
  response.headers = cr.getHeaders();

代码示例来源:origin: pentaho/pentaho-kettle

client.addFilter( data.basicAuthentication );
webResource = client.resource( data.realUrl );
 UriBuilder builder = webResource.getUriBuilder();
 for ( int i = 0; i < data.nrMatrixParams; i++ ) {
  String value = data.inputRowMeta.getString( rowData, data.indexOfMatrixParamFields[i] );
 webResource = client.resource( builder.build() );
   logDebug( BaseMessages.getString( PKG, "Rest.Log.queryParameterValue", data.paramNames[i], value ) );
  webResource = webResource.queryParams( createMultivalueMap( data.paramNames[i], value ) );
 logDebug( BaseMessages.getString( PKG, "Rest.Log.ConnectingToURL", webResource.getURI() ) );
WebResource.Builder builder = webResource.getRequestBuilder();
  builder = builder.header( data.headerNames[i], value );
  if ( "Content-Type".equals( data.headerNames[i] ) ) {
   contentType = value;
int status = response.getStatus();
 client.destroy();

代码示例来源:origin: com.marvelution.jira.plugins/jenkins-jira-plugin

/**
 * Get the {@link com.marvelution.jenkins.plugins.jira.model.Manifest} of the remote system
 *
 * @param remoteUrl the base URL of the remote Application Link system
 * @return the {@link com.marvelution.jenkins.plugins.jira.model.Manifest}
 */
public static Manifest getRemoteManifest(String remoteUrl) throws IOException {
  WebResource webResource = new Client().resource(remoteUrl).path("/rest/applinks/1.0/").path(ACTION);
  ClientResponse clientResponse = webResource.accept(MediaType.APPLICATION_XML_TYPE).get(ClientResponse.class);
  return XStreamUtils.getEntityFromRequest(clientResponse.getEntityInputStream(), Manifest.class);
}

代码示例来源:origin: stackoverflow.com

ClientConfig cc = new DefaultClientConfig();
 cc.getProperties().put(
     ClientConfig.PROPERTY_FOLLOW_REDIRECTS, true);
 Client c = Client.create(cc);
 WebResource r = c.resource("https://my_url");
 ClientResponse response = r.get(ClientResponse.class);
 EntityTag e = response.getEntityTag();
 String entity = response.getEntity(String.class);
 System.out.println("The response status is " + response.getStatus());
 System.out.println("The enttiy body is " + entity);

代码示例来源:origin: mjiderhamn/classloader-leak-prevention

@Override
protected void triggerLeak() {
 Client client = ApacheHttpClient.create(new DefaultClientConfig());
 try {
  // it doesn't matter where we make our call, we only want to initiate connections to create the leak
  WebResource webResource = client.resource("http://localhost:1234");
  webResource.accept("application/json").get(ClientResponse.class);
 } catch (Throwable ex) {
  //exception thrown for a non existing url, we do not need to call a real url, only to start the relevant leaking classes 
 }
 client.destroy();
}

代码示例来源:origin: stackoverflow.com

final Client client = new Client();
   final WebResource webResource = client.resource("http://abc/springrestexample/employees");
   final ClientResponse response = webResource.accept("application/json").header("KEY", "Value" ).get(ClientResponse.class);
   if (response.getStatus() != 200)
   {
     throw new RuntimeException("Failed Http Error code " + response.getStatus());
   }
   final String output = response.getEntity(String.class);
   System.out.println("Output from Server .... \n");
   System.out.println(output);

相关文章