Advertisement

使用httpUtil和httpclient进行带Cookie登录并访问后续链接

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本教程详解了如何利用HttpUtil及HttpClient库实现带有Cookie的自动登录,并演示了在成功登录后访问目标页面的具体步骤。 使用Java并通过httpclient获取cookie来模拟登录,在成功登录后携带该cookie发起后续请求。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 使httpUtilhttpclientCookie访
    优质
    本教程详解了如何利用HttpUtil及HttpClient库实现带有Cookie的自动登录,并演示了在成功登录后访问目标页面的具体步骤。 使用Java并通过httpclient获取cookie来模拟登录,在成功登录后携带该cookie发起后续请求。
  • 远程工具(使3389端口访
    优质
    远程登录工具是一种软件应用程序,允许用户通过互联网连接到其他计算机。此工具有时会利用TCP 3389端口以提供安全便捷的桌面访问功能。 远程登录通常包括远程协助应用和远程计算机管理等功能。
  • 使Python3seleniumCookie免密的实例代码
    优质
    本篇文章将提供一个详细的教程,演示如何利用Python 3结合Selenium库来实现网站的Cookie自动登录功能,免除每次的手动输入密码步骤。通过示例代码帮助读者快速掌握这一技术应用。 本段落主要介绍了使用Python3结合Selenium实现cookie免密登录的方法,并通过详细的示例代码进行了讲解。内容对学习或工作中需要此功能的读者具有参考价值。希望有兴趣的朋友可以跟随文章一起学习实践。
  • 使Python3seleniumCookie免密的实例代码
    优质
    本篇文章提供了一个利用Python3结合Selenium库实现网站Cookie自动免密登录的具体示例代码,适用于需要自动化操作或测试的场景。 经过两天的研究,我终于实现了Cookie的免密登录功能,实际上就是使用了Session机制。这个成果让我非常开心,因为在Python爬虫群里询问一些大佬的时候,他们的回答令我很失望。于是自己琢磨解决问题的方法,并且坚信靠自己的努力可以实现目标。 为了帮助那些入门的小白避免走同样的弯路,我想总结一下我的经验:首先遇到问题时要先独立思考;其次如果仍然不明白的话再去向别人求助;最重要的是理解事物的本质,只有真正掌握了原理才能灵活运用。最后可以在百度上搜索相关的博客文章,并仔细阅读每一篇来寻找规律和灵感。 例如,在使用Selenium进行自动化操作时,其实就是在操控浏览器的行为。当用Selenium打开一个空白的网页窗口后,如果需要登录某个网站的话,则可以通过编写代码来实现对Cookie的操作以完成自动化的登录过程。
  • PHP使Cookie访次数统计的代码
    优质
    本段落提供了利用PHP和Cookie技术实现网站访客访问次数统计的具体代码示例。通过简单易懂的方式讲解如何设置、读取及更新客户端的Cookie信息,从而记录用户的访问频率,并根据累计数据执行相应的操作逻辑。适合初学者学习和理解会话管理和用户行为跟踪的基本概念与实践技巧。 PHP可以通过使用cookie来实现访问次数的统计功能。有兴趣的朋友可以参考这种方法。
  • Java Web中使HttpClient模拟浏览器发起请求
    优质
    本教程介绍如何在Java Web开发中利用HttpClient库模拟浏览器行为执行登录操作及后续数据请求,适用于需要自动化处理网页交互的应用场景。 在Java Web应用程序中使用HttpClient库模拟浏览器行为以实现登录并发起请求的技术,在爬虫、自动化测试及数据抓取等领域应用广泛。 执行这一过程需要遵循以下步骤: 1. 访问一个需先登录才能访问的页面或资源。 2. 服务器检查当前会话是否已包含有效的登录信息。如果未找到,将重定向至登录页。 3. 在登录表单中手动填写正确的用户名和密码并提交请求。 4. 如果验证通过,服务器将在Session中保存成功登陆的信息,并返回一个含有该登录状态的Cookie给客户端浏览器。 5. 浏览器携带此包含会话信息(如SessionID)的Cookie自动跳转回初始访问地址。 6. 服务端再次检查Session以确认用户是否已正确登录。如果验证通过,服务器将请求资源反馈至浏览器。 在Java中使用HttpClient库可以便捷地实现以上步骤。这里是一个简单的示例代码: ```java import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.CookieStore; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.conn.PoolingClientConnectionManager; public class HttpClientDemo { public static void main(String[] args) throws Exception { getResoucesByLoginCookies(); } private static void getResoucesByLoginCookies() throws Exception { String username = ...; // 登录用户名 String password = ...; // 登录密码 String urlLogin = http://hx.buscoming.cn/ApiSecurityLogon?UserCode= + username + &Password= + password; String urlAfter = http://hx.buscoming.cn/ApiSecurityGetLoginAccount; DefaultHttpClient client = new DefaultHttpClient(new PoolingClientConnectionManager()); 第一次请求登录页面 获得cookie HttpPost post = new HttpPost(urlLogin); HttpResponse response = client.execute(post); HttpEntity entity = response.getEntity(); 第二次请求需要的资源 HttpGet get = new HttpGet(urlAfter); response = client.execute(get); entity = response.getEntity(); } } ``` 此代码中,我们首先使用HttpPost方法模拟浏览器登陆服务器,接着利用HttpGet方式获取所需资源。整个过程中采用DefaultHttpClient对象,并通过PoolingClientConnectionManager来管理连接池以优化性能。 实际应用时需根据具体情况做出调整,如处理异常、Cookie管理等。
  • SessionCookie在JavaWeb中认证
    优质
    本文章介绍了如何在Java Web开发过程中使用Session和Cookie实现用户登录与身份验证,确保用户的会话安全。 本段落主要介绍了如何在JavaWeb开发中使用Session和Cookie来实现登录认证功能,具有一定的参考价值,供对此感兴趣的开发者们参考学习。
  • 使Jsoup与Httpclient模拟及数据抓取
    优质
    本教程介绍如何利用Java中的Jsoup和HttpClient库实现网页的模拟登录,并进一步抓取所需数据。适合需要自动化处理网站信息的开发者学习参考。 Jsoup与HttpClient结合使用进行模拟登录并抓取页面的Java代码如下所示: ```java package com.app.html; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.OutputStreamWriter; import java.text.SimpleDateFormat; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.cookie.CookiePolicy; public class HttpClientHtml { private static final String SITE = login.goodjobs.cn; private static final int PORT = 80; private static final String loginAction = /index.php/action/UserLogin; private static final String forwardURL = http://user.goodjobs.cn/dispatcher.php/module/Personal/?skip_fill=1; // 其他静态常量省略 /** * 模拟登录 * * @param LOGON_SITE 登录站点地址 * @param LOGON_PORT 端口 * @param login_Action 登录动作URL * @param params 用户名和密码参数数组,包含两个元素:用户名及密码 */ private static HttpClient loginHtml(String LOGON_SITE, int LOGON_PORT, String login_Action, String...params) throws Exception { HttpClient client = new HttpClient(); client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT); // 设置登录参数并执行POST请求 PostMethod postLogin = new PostMethod(login_Action); NameValuePair[] postData = {new NameValuePair(memberName, params[0]), new NameValuePair(password, params[1])}; postLogin.setRequestBody(postData); client.executeMethod(postLogin); // 输出Cookies信息 CookiePolicy.getDefaultSpec().match(LOGON_SITE, LOGON_PORT, /, false, client.getState().getCookies()).forEach(cookie -> System.out.println(cookie)); return client; } /** * 使用已登录的客户端获取指定页面内容并保存为文件。 * * @param client 已经执行过loginHtml方法返回的HttpClient对象 * @param newUrl 需要访问的目标URL地址 */ private static String createHtml(HttpClient client, String newUrl) throws Exception { SimpleDateFormat format = new SimpleDateFormat(yyyy-MM-dd); // 设置文件保存路径与名称 FileUtil.write(client.executeMethod(new PostMethod(newUrl)).getResponseBodyAsString(), toUrl + format.format(new Date())+ _ + 1 + .html); System.out.println(\n写入文件成功!); } /** * 使用Jsoup解析HTML代码,并对特定标签进行处理。 * * @param filePath HTML文档路径 * @param random 随机数,用于生成新的输出文件名 */ private static String JsoupFile(String filePath, int random) { SimpleDateFormat format = new SimpleDateFormat(yyyy-MM-dd); try (BufferedReader in = new BufferedReader(new FileReader(filePath)); BufferedWriter out = new BufferedWriter( new OutputStreamWriter(new FileOutputStream(toUrl + format.format(new Date())+ _new_ + random+ .html), gbk))) { Document doc = Jsoup.parse(in, GBK); // 处理link标签 Elements links = doc.select(link); for (Element link : links) { String hrefAttr = link.attr(href).replace(/personal.css, css); if (hrefAttr.contains(/personal.css)) { Element hrefVal=link.attr(href, hrefAttr); out.write(hrefVal.toString()); } } // 处理script标签 Elements scripts = doc.select(script); for (Element js : scripts) { String jsrc = js.attr(src).replace(/scripts/fValidate/fValidate.one.js, _JS); if (jsrc.contains(/fValidate.one.js)) { Element val=js.attr(src, jsrc); out.write(val.toString()); } } // 处理body标签中的所有元素 Elements body = doc.getElementsByTag(body); for (Element tag : body.select(*)) { String src = tag.attr(src).replace(/images, Img); if (src.contains(/images)) { tag.attr(src, src); out.write(body.toString()); } } } catch (IOException e) { e.printStackTrace(); } return toUrl + format.format(new Date())+ _new_ + random + .html; } public static void main(String[] args) throws Exception { String [] params={admin,admin123}; HttpClient client = loginHtml(SITE, PORT, loginAction,params); createHtml(client, forwardURL
  • 使C#连SQL Server注册
    优质
    本教程详细介绍如何利用C#编程语言实现与SQL Server数据库的连接,并完成用户登录及注册功能的开发。 C#连接SQL Server实现登录注册功能涉及使用ADO.NET或Entity Framework等技术来操作数据库。首先需要创建一个Windows Forms应用程序,并在其中添加必要的控件如TextBox、Button用于输入用户名和密码,以及执行登录和注册的操作。 对于登录部分,可以通过验证用户提供的信息是否存在于数据库中来进行身份验证;而注册则是在确认用户信息有效且不重复的情况下将新用户的详细资料存储到SQL Server数据库里。整个过程中需要确保数据的安全性和完整性,并妥善处理可能出现的异常情况如用户名已存在或密码错误等。 请根据具体需求选择合适的技术栈并参考相关文档来实现上述功能。