suroMind

[Android] Http 요청할때 스크립트가 리턴되어 올때 본문

IT분야/Android

[Android] Http 요청할때 스크립트가 리턴되어 올때

suroMind 2011. 6. 29. 19:00

일반 웹브라우저상에서 접속시에는 접속이 잘 되지만

자바코드의 HttpClient를 이용하여 요청을 할때 아래와 같은 형태의 html이 리턴되어 올때가 있다.

<html><script lang=javascript>
document.cookie = '_accessKey2=rWb4P3PxLVoA9rec*6o3kc9X8bhIb3IR'
window.location.reload();
</script></html>

일단 보니 어떤 url을 치던지 간에 무조껀 저 코드가 뜬다.

구글링결과 웹서버 웹브라우저를 감지하지 않냐는 의견이 좀 있었다.
user-agent나 쿠키를 셋팅해서 보내라는 글들이 많았다.

일단 쿠키를 셋팅해서 해보니 요청이 잘된다.. ㅜ

안드로이드에서는 아직 테스트는 안해봤고 이클립스 콘솔에서만 테스트를 해봤다.
안드로이드도 잘 되겠지요..클래스가 약간 틀리면 수정점 하시구요

===============================================================================
                CookieStore cookieStore = new BasicCookieStore();
                BasicClientCookie cookie = new BasicClientCookie("abcd", "0000");
                cookie.setVersion(1);
                cookie.setDomain("해당 도메인"); // ex : www.tistory.com
                cookie.setPath("/");

                cookieStore.addCookie(cookie);
               
                HttpContext localContext = new BasicHttpContext();
                // Bind custom cookie store to the local context
                localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
                ((DefaultHttpClient)httpclient).setCookieStore(cookieStore);
===============================================================================

httpclient.execute() 함수를 호출하기 전에 위 코드를 넣으면 된다.
도메인이 틀리면 또 안된다.. 주의 하시기 바랍니다.

쿠키 셋팅하는 부분은 아파치 HttpClient 문서를 참조하였습니다.
Comments