【发布时间】:2015-02-05 08:27:06
【问题描述】:
我有一个学期项目,其中一部分是解析 twitter JSON 对象。我正在使用 Jersey 和 JAX-RS 我最初尝试使用我的 Jersey 客户端直接解析它,这是我的原始代码: (原文链接:https://api.twitter.com/1.1/search/tweets.json?q=%23coldplay)
public static String lastFMHTTP() {
Client client = ClientBuilder.newClient();
String Str = client.target("https://api.twitter.com/")
.path("1.1")
.path("tweets.json?")
.queryParam("q", "#coldplay")
.queryParam("result_type", "recent")
.request(MediaType.APPLICATION_JSON_TYPE)
.get(String.class);
return Str;
}
但结果并不好;我不明白如何传递 tweets.json?作为参数,无论如何这都会返回“错误的身份验证数据”(我尝试了另一种没有路径和查询参数的解析方法)。但是,此代码适用于我的 lastfm 请求。 api 密钥包含在 URL 中
经过一番搜索,我找到了 twitter4j,这是一个专门为此目的而制作的库。我成功地收到了 JSON 响应。这是我正在使用的代码:
public static String twitterHTTP() throws TwitterException {
Twitter twitter = TwitterFactory.getSingleton();
Query query = new Query("#coldplay");
QueryResult result = twitter.search(query);
return result;
}
当我运行这个方法时,object.twitterHTTP(); 它将信息打印到我的控制台中。我根本不需要打印任何东西,我只需要它以 JSON 格式返回一个字符串。
我最好的选择是什么? 有没有办法通过第一个代码验证 twitter,或者有没有办法从第二个代码中删除所有打印并让它返回一个字符串对象? 谢谢
【问题讨论】:
-
"tweets.json?"? 不应该在那里。它会在您使用查询参数时隐式附加。 -
" 它将各种垃圾信息打印到我的控制台中" - 一个开发者的“垃圾”是另一个开发者的宝藏(至少在信息宝藏的意义上 :-) 也许它想告诉你一些事情。
-
@peeskillet 我尝试删除它,但它甚至没有给我状态码错误垃圾:arrrghh
标签: json twitter jersey twitter4j hashtag