AsyncHttpClient仅提供一个简单的example,其中目标URL已预先构建并表示为字符串文字:
Future<Response> whenResponse = asyncHttpClient.prepareGet("http://www.example.com/").execute();
但是,在更复杂的情况下,您必须像这样处理REST端点,该怎么办?
/repos/{owner}/{repo}/contributors
如何在AsyncHttpClient中指定基本URL,以及如何编写代码以使用此类REST服务?
P.S。假装provides是一种非常方便的方法,可用于围绕应用程序将要使用的REST服务设计代码
答案 0 :(得分:0)
这就是我正在使用的。它有问题,但目前仍有效。
public final class ApiHelper {
...
public static Uri UriGet(String baseUrl, String endpoint) {
//org.apache.http.client.utils
URIBuilder uriBuilder = null;
//java.net
URI uriTemp = null;
try {
uriBuilder = new URIBuilder(baseUrl);
uriTemp = uriBuilder.setPath(Paths.get(uriBuilder.getPath(), endpoint).toString())
.build()
.normalize();
} catch (URISyntaxException e) {
e.printStackTrace();
}
//org.asynchttpclient.uri.
Uri uri = Uri.create(uriTemp.toString());
return uri;
}
//usage:
String endpoint = "{owner}/{repo}/contributors".replace("{owner}", owner).replace("{repo}", repo);
Uri uri = ApiHelper.UriGet(Baseurl, endpoint);