2013-10-24 4 views
2

위키 백과 API를 사용하려면 자바 코드가 필요합니다. 특정 값의 태그를 wikipedia (페이지 끝 부분에 나타나는 태그)에서 가져오고 싶습니다. 내가 필요로하는 API를 호출토큰 (또는 다른 것) 이클립스를 사용하여 위키 백과 API를 사용해야했습니다.

"http://en.wikipedia.org/w/api.php?action=query&format=json&titles=Albert%20Einstein&prop=categories" 
(for the example of Albert Einstein) 

것을 알고하지만 어려운 내가 토큰 및 해시를 필요로하는 경우 미디어 위키 API 문서 페이지에서 이해하거나 또는하지 로그인 할 찾을 수 있습니다. 나는 때때로 로그인 할 필요가 없습니다 것을 알고 지금

내 코드는 다음과 같습니다.

ApiCall가 전화를 전송하는 기능을하고, 잘 작동
JSONArray wikiResult=null; 
String url1= "http://en.wikipedia.org/w/api.php?action=query&format=json&titles=Albert%20Einstein&prop=categories"; 
wikiResult=ApiCall(url1); 

, 내가 그것을 확인했다. 반환되는 JSONArray가 비어 있습니다.

누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까?

답변

0

prop=categories에 로그인하거나 토큰을받을 필요가 없습니다.

아마도 실제 오류가 응답에서 설명됩니다. 응답이 JSON이 아니기 때문에 결과가 비어있을 가능성이 있습니다 (오류 발생).

내가 추측한다면 귀하의 요청에 the User-Agent header (is required by Wikimedia wikis)을 설정하지 않았다고 생각합니다.

+0

감사합니다. User-Agent를 정확히 설정하는 방법을 알고 있습니까? Wikipedia에서 계정을 만들어야합니까? 사용자 에이전트를 설정하는 방법에 대한 유일한 예는 다음과 같습니다. "ini_set ('user_agent', 'MyCoolTool/1.1 (http://example.com/MyCoolTool/; [email protected]) BasedOnSuperLib/1.4 '); " 위의 예에서 User-Agent의 다른 필드는 무엇입니까? 다시 한번 감사드립니다! – Mariel

+0

@ user2494680 저는 Java가 아니며 요청을 정확히 작성하는 방법을 알려주지 않았으므로 그 점을 알려 드릴 수는 없습니다. 그러나 확실히 계정이 필요 없습니다. – svick

+0

확인. ini_set (string $ varname, string $ newvalue) 함수는 구성 옵션의 값을 설정하는 PHP 함수입니다. 같은 기능을 수행하기 위해 Java에서 어떤 기능을 사용할 수 있는지 알고 있습니까? – Mariel