JavaCode使用客户端ID /客户端密钥/令牌连接API管理器

时间:2016-05-31 13:14:12

标签: wso2 wso2-am

我有一个BE Java服务,它是RESTFul,它被移植到WSO2 API Manager上。它已在Store中发布并可用。我已经注册了一个新的应用程序(通过Name' Java App')并且在订阅该API时,它为我提供了客户端密钥和客户端密钥以及令牌。使用令牌我能够成功访问API(来自SOAP UI)。我的要求是从独立的Java应用程序访问API。有人可以指导我或提供可以访问已发布API的适当代码。

此致,Sreedhar。

1 个答案:

答案 0 :(得分:0)

您可以使用Apache HTTP client通过将Authorization作为HTTP标头发送来调用API。

String url = "API_URL";

HttpClient client = HttpClientBuilder.create().build();
HttpGet request = new HttpGet(url);

// add Authorization Header header
request.addHeader("Authorization", "Bearer :" + accessToken);
HttpResponse response = client.execute(request);

System.out.println("Response Code : " 
            + response.getStatusLine().getStatusCode());

BufferedReader rd = new BufferedReader(
    new InputStreamReader(response.getEntity().getContent()));

StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
    result.append(line);
}

对于使用用户名,密码和客户端密钥/密钥生成令牌,您可以使用以下cURL示例来构建HTTP请求。更多信息可以在token api

中找到
curl -k -d "grant_type=password&username=<username>&password=<password>" -H "Authorization: Basic SVpzSWk2SERiQjVlOFZLZFpBblVpX2ZaM2Y4YTpHbTBiSjZvV1Y4ZkM1T1FMTGxDNmpzbEFDVzhh" -H "Content-Type: application/x-www-form-urlencoded" https://localhost:8243/token

您必须以64位编码客户端密钥/密钥为基础,并使用授权标头将其作为基本发送。