java调用ambari api示例
以查询ambari当前用户列表为例,展示java调用ambari api的demo
·
以查询ambari当前用户列表为例:
import cn.chinaunicom.common.constant.Constant;
import com.alibaba.fastjson.JSONObject;
import com.sun.javafx.fxml.builder.URLBuilder;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import javax.xml.bind.DatatypeConverter;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;
public class test {
/**
* http get请求
*/
public static String doGet(String restUrl, Map<String, String> params) throws ClientProtocolException, IOException {
CloseableHttpClient httpClient = null;
CloseableHttpResponse response = null;
String result = "";
try {
// 通过址默认配置创建一个httpClient实例
httpClient = HttpClients.createDefault();
URIBuilder uriBuilder = new URIBuilder(restUrl);
for (Map.Entry<String, String> entry : params.entrySet()) {
uriBuilder.setParameter(entry.getKey(), entry.getValue());
}
// 创建httpGet远程连接实例
HttpGet httpGet = new HttpGet(restUrl);
String encoding = null; //username password 自行修改 中间":"不可少
String username = "xxx";
String password = "xxx";
encoding = DatatypeConverter.printBase64Binary((username + ":" + password).getBytes("UTF-8"));
httpGet.setHeader("Authorization", "Basic " + encoding);
// 设置配置请求参数
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)// 连接主机服务超时时间
.setConnectionRequestTimeout(35000)// 请求超时时间
.setSocketTimeout(60000)// 数据读取超时时间
.build();
// 为httpGet实例设置配置
httpGet.setConfig(requestConfig);
// 执行get请求得到返回对象
response = httpClient.execute(httpGet);
// 通过返回对象获取返回数据
HttpEntity entity = response.getEntity();
// 通过EntityUtils中的toString方法将结果转换为字符串
result = EntityUtils.toString(entity);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (URISyntaxException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (null != response) {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != httpClient) {
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
/**
* 查询用户列表
*/
public static String ambari_users() throws IOException {
String url = "http://xx.xx.xx.xx:8080/api/v1/users";
Map<String, String> params = new HashMap<>();
params.put("fields", "Users/user_name");
params.put("sortBy", "Users/user_name.asc");
params.put("page_size", "10");
return doGet(url, params);
}
public static void main(String[] args) throws IOException {
System.out.println(ambari_users());
}
}
欢迎关注“程序杂货铺”公众号,里面有精彩内容,欢迎大家收看^_^
更多推荐
已为社区贡献1条内容
所有评论(0)