2012-10-18 1 views
0

로그인이 필요한 SSL 암호화 (암호로 서명 됨, 자체 서명 된 문제가 없음) 웹 사이트가 있습니다. 내 목표는이 사이트의 서브 페이지에서 일부 데이터를 읽는 것입니다. 웹 브라우저의 정규 과정은 다음과 같습니다안드로이드에서 SSL로 암호화 된 웹 사이트를 구문 분석하십시오.

  • 이 버튼을 지금
  • 를 자격 증명을 입력하고 공격을 "https://abc.de"이동 .. 당신에 로그인 링크를 클릭하고 볼 수 있습니다 데이터

이제 Android에서 버튼을 클릭하고 배경에있는 모든 것을 자동으로 처리하여 그 결과를 구문 분석 된 형식으로 표시하려고합니다.

안드로이드 프로그래밍에 대해 많이 알지 못해 처음으로 내 생각은 WebView였습니다. POST 요청을 자격 증명이있는 로그인 페이지로 직접 보내면 정상적으로 작동합니다. 하지만 그것은 WebView의 소스 코드를 얻을 수없는 것 같습니다. 무엇이 가장 좋고/가장 쉬운 기술/내가 원하는 것을 할 수있는 방법일까요?

답변

2

가 오히려 그냥 WebView를 사용하는 것보다, 그것을 사용하는 것이 아마도 더 나은 하나 HttpClient 또는 HttpURLConnection 처음 서버에서 페이지를로드 (사용에 대한 설명은 this blog post 참조). 그런 다음 반환 된 데이터로 수행해야 할 작업을 수행 한 다음 표시를 위해 WebView으로 전달할 수 있습니다.

0

이 사용자의 양식을 제출해 주실 수 있습니까? HTTPClient를 사용하고 연결을 열어 양식을 제출할 수 있습니다. 그러나 이것은 쉽게 까다 롭고 추악해질 수 있습니다. 일부 서버는 클라이언트가 로그인 할 수있게하기 전에 브라우저에 nonce를 전달합니다. 서버에 이러한 보안 기능이있는 경우 프로그래밍 방식 로그인을 성공시키기 전에 많은 코드를 작성하게됩니다. 또한 [1]과 같은 HTML 파서를 사용하여 데이터를 읽어야합니다.

웹 사이트에서이 데이터를 검색 할 수있는 API를 노출하는 것이 훨씬 쉬운 방법입니다. 이것은 제가 제안하는 길입니다. 웹 서비스는 HTTPS를 통한 OAuth 또는 BASIC 인증을 통해 사용자를 인증 할 수도 있습니다. 그것은 화면 스크래핑의 고통을 없애 주지만 상기 서비스를 작성하는데 시간을 투자해야합니다.

[1] - http://htmlcleaner.sourceforge.net/

관련 문제