如何使用AsyncHttpClient构建URL?

时间:2019-06-10 16:35:10

标签: java asynchttpclient

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服务设计代码

1 个答案:

答案 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);