我尝试了几种通过java登录网站的方法。我用过 watij、HTMLunit 等。但由于对这些都不太熟悉,我无法成功登录。

谁能详细告诉我如何通过java登录

更具体地说,我想登录 ORKUT 并想要登录后出现的页面的页面源。

有帮助吗?

解决方案

你最好的机会做这些事情&在现实世界中生存下来的是Selenium-RC。

基本上,您要做的是远程控制您的浏览器以执行您可以手动执行的任何操作(文件上传除外)。

很多时候,我使用过这种模式:

  1. 使用selenium登录
  2. 拿饼干
  3. 继续我最喜欢的HTTP库。

其他提示

答案取决于网站如何尝试对您进行身份验证:

  • 您是否必须在 HTTP 标头中设置用户名和密码(基本身份验证)?
  • 或者您是否必须填写并提交包含用户名和密码的表格?

对于这两种方法,我都会推荐 commons-httpclient,尽管后一种屏幕抓取方法以编程方式执行总是很混乱。

对于基本身份验证,请查看 httpclient 的 认证指南.

对于表单身份验证,您需要检查页面的 HTML 源代码以了解

  • 表单提交到的 URL
  • 提交的参数名称是什么

有关如何在 httpclient 中提交表单的帮助,请查看 有关 POST 方法的文档.

httpclient 站点还包含 基础教程.

为什么要尝试通过Java登录,为什么不使用cURL?你有什么具体的想法吗?

Orkut使用Google身份验证登录。我的建议是使用像Fiddler这样的HTTP调试器在登录时观察流量。可能有你需要复制的cookie和重定向。

通常,

  1. 查看登录表单,获取名称和密码字段的名称以及表单发布到的操作
  2. 为操作网址创建POST请求并正确传递名称和密码(例如name = username& password = pwd)
  3. 这是HTTPS(确保正确执行此操作)
  4. 如果回复标题中有SET-COOKIE,请确保在所有后续请求中发送该Cookie
  5. 如果响应具有重定向,则为重定向执行GET,并在适当时发送cookie
  6. (继续循环#5直到你没有得到重定向)
  7. 您在此结尾处得到的回复是页面来源。

    看看这个:

    http:// code .google.com的/ apis / GDATA /的Javadoc / COM /谷歌/ GDATA /客户端/ HTTP / AuthSubUtil.html http:// code.google.com/p/apex-google-data/source/browse/trunk/google_data_toolkit/src/classes/AuthSubUtil.cls

    看起来像google代码,可以使用他们的服务进行身份验证。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top