Apache HttpComponents Client를 사용하여 웹 사이트의 로그인 프로세스를 Java에서 시뮬레이트하려고합니다. 지금은 실패하고 있으며 이유는 확실하지 않습니다. Firebug를 파이어 폭스에서 사용하여 동일한 브라우저 이벤트를 시도하고 있으며 폼의 특정 POST 메소드로 로그인하고 있다고 확신합니다.잘못된 HTTP 로그인 문제를 어떻게 해결해야합니까?
여기 내 코드가 있습니다. 마지막에는 많은 쿠키가 설정되기를 기대하지만 그렇지 않습니다. 이후 GET 요청에 대한 응답은 로그인에 실패했음을 증명합니다.
String email = ...
String password = ...
String url = ...
DefaultHttpClient client = new DefaultHttpClient();
List<NameValuePair> loginParams = new ArrayList<NameValuePair>(2);
loginParams.add(new BasicNameValuePair("logindetails[email]", email));
loginParams.add(new BasicNameValuePair("logindetails[password]", password));
UrlEncodedFormEntity loginEntity = new UrlEncodedFormEntity(loginParams);
HttpPost loginPost = new HttpPost(url);
loginPost.setEntity(loginEntity);
HttpResponse loginResponse = client.execute(loginPost);
HttpEntity loginRepsonseEntity = loginResponse.getEntity();
loginRepsonseEntity.consumeContent();
for (Cookie cookie: client.getCookieStore().getCookies()) {
System.out.println(cookie.getName() + " -> " + cookie.getValue());
}
어디서 문제가 발생합니까? 나는 POST가 나의 브라우저가 만들고있는 것과 똑같은지 확인하고 싶다 - 그렇게하는 가장 좋은 방법은 무엇인가?
그렇습니다. 그 입력은 정말로 그 이상한 이름을 가지고 있습니다 ... – HenryTyler2
다음, 다음 번에는 인터넷 탭을 점검하기 위해 방화 상자를 사용하는 것이 좋습니다. 그런 다음 HttpClient에서 디버깅을 켜고 게시물의 내용을 비교하십시오. –
그 이상한 arent. PHP는 이러한 태그를 지원하고이를 배열로 해석합니다. – ZeissS