我正在编写一个 Java 库,需要对 URL 执行请求——当前使用来自 ning的 async-http- client——并获取其内容。所以我有一个get
方法可以返回获取的文档内容的字符串。但是,为了能够获得它,我必须执行 HTTP 基本身份验证,但在我的 Java 代码中没有成功:
public String get(String token) throws IOException {
String fetchURL = "https://www.eventick.com.br/api/v1/events/492";
try {
String encoded = URLEncoder.encode(token + ":", "UTF-8");
return this.asyncClient.prepareGet(fetchURL)
.addHeader("Authorization", "Basic " + encoded).execute().get().getResponseBody();
}
}
该代码没有返回错误,它只是没有获取 URL,因为身份验证标头没有被正确设置,不知何故。
使用 curl-u
选项,我可以轻松获得我想要的东西:
curl https://www.eventick.com.br/api/v1/events/492 -u 'xxxxxxxxxxxxxxx:'
回报:
{"events":[{"id":492,"title":"Festa da Bagaceira","venue":"Mangueirão de Paulista",
"slug":"bagaceira-fest", "start_at":"2012-07-29T16:00:00-03:00",
"links":{"tickets":[{"id":738,"name":"Normal"}]}}]}
如何在 Java 中做到这一点?使用 async-http-client 库?或者,如果您知道如何使用另一种方式来做到这一点..
欢迎任何帮助!