/**
* Returns a specific release from the specified repository.
*
* @param owner the repository's owner
* @param repo the repository's name
* @param id the id of the release to retrieve
* @return An {@link Optional} that contains the specified release if it could be found.
* @throws IOException if an IO error occurs while communicating with GitHub.
* @throws URISyntaxException if the crafted URI is incorrect.
*/
public Optional<GithubRelease> getRelease(String owner, String repo, String id) throws IOException, URISyntaxException {
URIBuilder requestUrl = new URIBuilder()
.setScheme(URL_PROTOCOL)
.setHost(GITHUB_API_HOSTNAME)
.setPath("/repos/" + owner + "/" + repo + "/releases/" + id);
logger.debug(() -> "requestUrl = " + requestUrl);
HttpGet httpget = new HttpGet(requestUrl.build());
return Optional.ofNullable(httpClient.execute(httpget, new AbstractResponseHandler<GithubRelease>() {
@Override
public GithubRelease handleEntity(HttpEntity entity) throws IOException {
return gson.fromJson(EntityUtils.toString(entity), GithubRelease.class);
}
}));
}
java类org.apache.http.impl.client.AbstractResponseHandler的实例源码
GithubApi.java 文件源码
项目:binjr
阅读 17
收藏 0
点赞 0
评论 0
GithubApi.java 文件源码
项目:binjr
阅读 18
收藏 0
点赞 0
评论 0
/**
* Returns a list of all release from the specified repository.
*
* @param owner the repository's owner
* @param repo the repository's name
* @return a list of all release from the specified repository.
* @throws IOException if an IO error occurs while communicating with GitHub.
* @throws URISyntaxException if the crafted URI is incorrect.
*/
public List<GithubRelease> getAllReleases(String owner, String repo) throws IOException, URISyntaxException {
URIBuilder requestUrl = new URIBuilder()
.setScheme(URL_PROTOCOL)
.setHost(GITHUB_API_HOSTNAME)
.setPath("/repos/" + owner + "/" + repo + "/releases");
logger.debug(() -> "requestUrl = " + requestUrl);
HttpGet httpget = new HttpGet(requestUrl.build());
return httpClient.execute(httpget, new AbstractResponseHandler<List<GithubRelease>>() {
@Override
public List<GithubRelease> handleEntity(HttpEntity entity) throws IOException {
return gson.fromJson(EntityUtils.toString(entity), new TypeToken<ArrayList<GithubRelease>>() {
}.getType());
}
});
}
JrdsDataAdapter.java 文件源码
项目:binjr
阅读 18
收藏 0
点赞 0
评论 0
@Override
public boolean ping() {
try {
return doHttpGet(craftRequestUri(""), new AbstractResponseHandler<Boolean>() {
@Override
public Boolean handleEntity(HttpEntity entity) throws IOException {
String entityString = EntityUtils.toString(entity);
logger.trace(entityString);
return true;
}
});
} catch (Exception e) {
logger.debug(() -> "Ping failed", e);
return false;
}
}
HttpDataAdapterBase.java 文件源码
项目:binjr
阅读 23
收藏 0
点赞 0
评论 0
@Override
public byte[] onCacheMiss(String path, Instant begin, Instant end) throws DataAdapterException {
return doHttpGet(craftFetchUri(path, begin, end), new AbstractResponseHandler<byte[]>() {
@Override
public byte[] handleEntity(HttpEntity entity) throws IOException {
return EntityUtils.toByteArray(entity);
}
});
}
ResponseHandlerFactory.java 文件源码
项目:LiquidDonkey
阅读 23
收藏 0
点赞 0
评论 0
/**
* Returns an entity to function result response handler.
*
* @param <R> the function return type, not null
* @param function the function to apply to the response entity, not null
* @return an entity to function result response handler, not null
*/
public static <R> ResponseHandler<R> of(IOFunction<InputStream, R> function) {
Objects.requireNonNull(function);
return new AbstractResponseHandler<R>() {
@Override
public R handleEntity(HttpEntity entity) throws IOException {
try (InputStream inputStream = entity.getContent()) {
return function.apply(inputStream);
}
}
};
}
ResponseHandlerFactory.java 文件源码
项目:LiquidDonkey
阅读 24
收藏 0
点赞 0
评论 0
/**
* Returns an entity to byte array response handler.
*
* @return an entity to byte array response handler, not null
*/
public static ResponseHandler<byte[]> toByteArray() {
return new AbstractResponseHandler<byte[]>() {
@Override
public byte[] handleEntity(HttpEntity entity) throws IOException {
return EntityUtils.toByteArray(entity);
}
};
}