<dependency> <groupId>org.glassfish.jersey.ext</groupId> <artifactId>jersey-apache-client</artifactId> <version>2.32</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> </dependency> import org.glassfish.jersey.apache.connector.ApacheConnectorProvider; import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.client.ClientProperties; import org.glassfish.jersey.client.HttpUrlConnectorProvider; import org.glassfish.jersey.client.oauth2.BearerToken; import org.glassfish.jersey.client.oauth2.OAuth2ClientSupport; import org.glassfish.jersey.client.oauth2.TokenResult; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; public class HttpClientExample { public static void main(String[] args) { Client client = createClient(); TokenResult tokenResult = authenticate(client); client.register(OAuth2ClientSupport.feature(tokenResult.getToken())); String endpoint = "https://api.example.com/user"; Response response = client.target(endpoint) .request(MediaType.APPLICATION_JSON) .get(); if (response.getStatus() == Response.Status.OK.getStatusCode()) { String userInfo = response.readEntity(String.class); } else { } client.close(); } private static Client createClient() { ClientConfig clientConfig = new ClientConfig(); clientConfig.connectorProvider(new ApacheConnectorProvider()); clientConfig.property(ClientProperties.CONNECT_TIMEOUT, 5000); clientConfig.property(ClientProperties.READ_TIMEOUT, 5000); return ClientBuilder.newBuilder() .withConfig(clientConfig) .build(); } private static TokenResult authenticate(Client client) { String accessToken = "YOUR_ACCESS_TOKEN"; BearerToken bearerToken = new BearerToken(accessToken); return OAuth2ClientSupport.tokenResult(client.target("https://auth.example.com/token") .queryParam("grant_type", "client_credentials") .request() .post(bearerToken)); } }


上一篇:
下一篇:
切换中文