【发布时间】:2013-06-27 04:08:56
【问题描述】:
我正在编写一个 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 库?或者,如果您知道如何使用另一种方式来做到这一点..
欢迎任何帮助!
【问题讨论】:
标签: java asynchttpclient