我试图弄清楚如何使用apache HttpClient登录网页。该页面使用的是ssl TLSv1握手协议。我有访问凭据的用户名和密码。我一直在网上阅读一堆东西,但我遗漏了一些东西。有经验的人可能会完全分解我需要配置客户端来做什么。我已经读过必须设置一个SSL套接字,我已经接近正确配置但我得到了一个SSLv2握手协议。
此外,我不确定这次握手是否失败。我可能只是没有正确地保留呼叫之间的会话信息。因此,对此的任何帮助也将受到赞赏。
<form name="loginuserform" method="post" action="https://www.site.com/login" id="login_form">
<div id="loginFields">
<div class="left_input" id="email_input">
<input id="emailInput" type="text" name="email" tabindex="1" value="">
</div>
<div class="left_input" id="password_input">
<span class="labelStyle">Password</span>
<input type="password" name="password" tabindex="2">
</div>
<div class="left_input">
<input type="submit" class="primaryActionButton" value="Sign In" tabindex="3">
</div>
</div>
</form>
您能否详细解释我们如何回应此表格。
答案 0 :(得分:1)
它位于HttpClient网站上。它的前提很简单。您需要提供SSL套接字工厂并通过系统属性设置SSL工厂所需的配置,如 - 密钥库路径和访问pwd等。如需使用插座工厂,请查看以下内容。
Protocol myhttps = new Protocol("https", new MySSLSocketFactory(), 443);
HttpClient httpclient = new HttpClient();
httpclient.getHostConfiguration().setHost("www.whatever.com", 443, myhttps);
GetMethod httpget = new GetMethod("/");
try {
httpclient.executeMethod(httpget);
System.out.println(httpget.getStatusLine());
} finally {
httpget.releaseConnection();
}