我有一个BE Java服务,它是RESTFul,它被移植到WSO2 API Manager上。它已在Store中发布并可用。我已经注册了一个新的应用程序(通过Name' Java App')并且在订阅该API时,它为我提供了客户端密钥和客户端密钥以及令牌。使用令牌我能够成功访问API(来自SOAP UI)。我的要求是从独立的Java应用程序访问API。有人可以指导我或提供可以访问已发布API的适当代码。
此致,Sreedhar。
答案 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位编码客户端密钥/密钥为基础,并使用授权标头将其作为基本发送。