【发布时间】:2016-09-05 18:39:52
【问题描述】:
我正在尝试从 DuckDuckGo API 获得一些即时答案,但我不断收到错误 403。这是我目前的代码:
static JSONObject getData(String term){
JSONParser parser = new JSONParser();
JSONObject json = null;
term = term.replaceAll(" ", "%20");
try {
URL ob=new URL("http://api.duckduckgo.com/?q=" + term + "&format=json&pretty=0");
HttpURLConnection con=(HttpURLConnection) ob.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("USER_AGENT", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
BufferedReader br = new BufferedReader((new InputStreamReader(con.getInputStream())));
json = (JSONObject) parser.parse(br.readLine());
} catch (Exception ex) {
ex.printStackTrace();
}
return json;
}
我似乎无法让它工作。我读过我需要将其识别为普通浏览器,但我看不出我做错了什么。有什么帮助吗?
【问题讨论】:
-
我确认。我得到了同样的错误。我正在尝试进一步调试它。
-
我顺利通过了它,没有任何错误。现在,我正在尝试验证返回的 JSONObject 是否有任何数据。
-
我整理了一些有效的快速/脏代码。我会在几分钟内发布