2012-03-20 2 views
1

나는 유형의 URI http://data.seattle.gov/api/views/vncn-umqp/rows.json.json을 가지고 개체의 data 부분을 검색하는 GET 요청을하려면 (의 후반부를 참조 "데이터"가있는 페이지).내용을 자바 URI를 .json하는 GET 요청을받는 것은

문제는 성공적으로 200 응답을받을 수 HttpURLConnection, URL, URLConnection 또는 Connection 또는 기타 유사한 자원을 사용할 수 있는지 모르겠습니다입니다. 또한이 URI의 도메인은 요청에 대해 REST API right here을 제공하지만 문서의 불일치로 인해 (예 : 사용자 자격 증명을 인코딩하는 데 sun.Base64Encoder를 사용합니다. 사용 또는 사용할 수 없음) 연결을 위해 사용하기가 매우 어렵습니다. 데이터 검색 전용.

그들은 또한 API 키 인증 방법을 사용하지만 작업의 단순화를 위해 작업을 수행하는 하나 확실하지 않다 (즉, 오직이 특정 URI에서 데이터를 읽을 필요가있는 사람은)

사람은 제공 할 수 있습니다 그러한 요청을하는 방법에 대한 해결책은 무엇입니까?

답변

3

Apache HttpClient를 사용하여 Android API에 포함 된 웹 리소스에 요청할 수 있습니다. GET 요청은 충분히 간단합니다.

HttpGet get = new HttpGet("http://data.seattle.gov/api/views/vncn-umqp/rows.json"); 

HttpClient client = new DefaultHttpClient(); 
HttpResponse response = client.execute(get); 
System.out.println(response.getStatusLine()); 

그런 다음 JSON 라이브러리를 사용하여 응답을 구문 분석 할 수 있습니다. 클라이언트는 다른 HTTP 동사 (POST, PUT, DELETE ...)도 지원합니다.

질문의 두 번째 부분에 대해서는이 REST API가 링크 된 웹 서비스의 동일한 공급자에 의해 제공되었다는 것을 암시하는 것처럼 보였지만 다소 혼란 스러웠습니다. 또한 실제적으로 REST 클라이언트 API임을 즉시 알 수 없습니다. 문제를 해결하기 위해 질문을 업데이트하고 싶을 수 있습니다. 그러나 주제를 다시 생각해 보면 복잡한 REST 클라이언트 API를 사용하지 않아도됩니다. HttpClient로 콘텐츠에 액세스하고 JSON 라이브러리로 처리하면됩니다.

행운을 빈다.

+0

고맙습니다. 그것은 나에게 200 OK를 줬다! REST API에 대해 왜 앱 토큰 매개 변수와 물건을 사용하여 자체 HttpConnection 클래스를 설정했다고 생각합니까? 나는 apptoken을 가지고있다. 그러나 나는 단지 데이터를 읽고지도 상에 그리기를 원하기 때문에 그것이 필요하다고 생각하지 않는다. 데이터베이스에 데이터를 쓰지 않으면 인증이 더 쓸모없는 것처럼 보입니다. – jmishra

+0

API에 익숙하지 않아서 말할 수 없습니다. HttpClient를 사용하면 기본 및 다이제스트 인증을 수행하고 SSL을 지원하며 일부 도움을 받아 OAuth를 수행 할 수 있습니다. 링크 된 API는 다양한 기술 위에 더 단순한 레이어를 넣으 려 할 수도 있지만 내가 말한 것처럼 이전에는 사용하지 않았다. – Perception

1

Google의 Gson 라이브러리를 사용하여 JSON 파일을 사용하는 것이 좋습니다.

http://code.google.com/p/google-gson/

이 프로젝트에 통합하는 것은 매우 간단하고 JSON 파일의 내용을 구문 분석하는 데 많은 당신의 작업을 쉽게 할 것이다.

관련 문제