2013-09-29 4 views
5

장치 자체에서 실행되는 http 프록시 서버를 작성하려고합니다. 사실, 장치에서 생성 된 아웃 바운드 http 트래픽을 캡처하는 방법을 찾아야합니다. http://www.jtmelton.com/2007/11/27/a-simple-multi-threaded-java-http-proxy-server/안드로이드 장치에서 실행중인 로컬 프록시 서버

문제는 실제 서버에 HTTP 요청을 차단하고 돌아 오지 않을 것이다 :

지금까지 확인을 컴파일 한 코드, 그것은 여기에있는 코드를 기반으로합니다.

장치를 루팅하지 않고 이러한 서비스를 작성하는 더 좋은 방법이 있습니까?

답변

4

SandroProxy를 확인해야합니다. os 프록시 설정이 사용되거나 루트가 설정된 iptables 규칙을 사용하는 경우 루트가 아닌 장치에서 트래픽을 수용 할 수 있습니다. 트래픽이 로컬 sqlite 데이터베이스에 저장됩니다. 캡처 된 데이터는 chrome devtools로 검사 할 수도 있습니다. 앱의 트래픽을 캡처하려면 소스 코드에서 플러그인을 확인해야합니다. iptables 리디렉션 및 적절한 설정을위한 모든 코드가 있습니다.

체크 아웃 구글 소스 코드에 위키 링크 HowToInterceptTrafficOnMyOwn

http://code.google.com/p/sandrop/wiki/HowToInterceptTrafficOnMyOwn

가 BTW : sandroproxy 지원 :

+0

안녕 SandroProxy 지원! 도와 주셔서 감사합니다. 여기에 결과를 게시하고 게시합니다. – fran6

+0

안녕하세요, 도와 주실 수 있습니까? System.loadLibrary ("socketdest")의 문제점 : AndroidStudio를 사용하고 jni 라이브러리를 빌드하는 방법을 모릅니다. – fran6

+1

이 코드를 사용하여 빌드를 건너 뛸 수 있습니다. http://code.google.com/p /sandrop/downloads/detail?name=libsocketdest.so –

0

나는 프록시 서버로 장치를 사용하기 위해 proxydroid라는 소프트웨어를 사용했으며 루트를 필요로하지 않는 유일한 장치를 사용했습니다. 그것은 당신에게 어떤 도움이 될 것입니다 있는지 확실하지 않습니다,하지만 오픈 소스 프로젝트와 코드는 여기에서 찾을 수 있습니다 :

https://github.com/madeye/proxydroid

내가 응용 프로그램이 잠시 후 동결, 또는 것입니다 것으로 나타났습니다 한 번에 많은 요청을 보내지 만 왜 이런 일이 일어나는지 알 수있는 기회가 없었습니다.

+0

안녕하세요, Kennifer! 그것은 매우 좋으며 나는 실험 할 것입니다. 성능 제한은 큰 문제가 아니며 지금은 순간에 PoC를 시도하고 있습니다. – fran6

+0

안녕하세요, Kennifer, 나는 단지 트래픽을 캡처하고 가로 채기를 원하기 때문에 proxydroid가 나를 위해 일하는 것을 발견하지 못했습니다. 프록시 드로이드를 사용하려면 프록시 서버가 있어야합니다 :-( – fran6

0

는, 프록시 설정을 잊어 모든 검토 페이스 북 Stetho 라이브러리 (http://facebook.github.io/stetho/)를 사용하여 전송 에뮬레이터/장치의 http 요청 및 응답

enter image description here

관련 문제