`
guohf
  • 浏览: 414761 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA使用java.net.url模拟登录

    博客分类:
  • java
阅读更多

有的时候,会需要使用java的程序访问网页,正常的访问网页的程序很多,也没有什么可讲的,在这里主要说明一下如何使用java的访问网页时,需要登录时,如何保持登录的程序。

先简单讲解一下原理:实际上网页和服务器是两套应用,客户端访问服务器一次,实际上网页获取后,连接立即就断了,这样的话,说明服务器是不会保持长 效连接的,但是在现实情况登录的话,客户端好像一直在保留连接,那么这种情况就和先前模式似乎不同;当然不是,断开连接是整个B/S架构的根本原理所在, 因此怎么去保持这些连接,实际上就是利用Cookie,访问网页时,每次网页的服务器会产生一个Cookie,记录当前网页的一个键值,如果使用登录了 后,服务器端的Session就会和客户端的一个Cookie产生连接,这样每次给这个页面发送客户端的Cookie所记录的Session的标识,即可 完成登录的模拟。
代码如下:

 

URL url = new URL("网页");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);//允许连接提交信息
connection.setRequestMethod("POST");//网页提交方式“GET”、“POST”
connection.setRequestProperty("User-Agent", "Mozilla/4.7 [en] (Win98; I)");
StringBuffer sb = new StringBuffer();
sb.append("username=admin");
sb.append("&password=admin");
OutputStream os = connection.getOutputStream();
os.write(sb.toString().getBytes());
os.close();


BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));




String responseCookie = connection.getHeaderField("Set-Cookie");//取到所用的Cookie
           System.out.println("cookie:" + responseCookie);
String line = br.readLine();


while (line != null) {


System.out.println(new String(line.getBytes()));


line = br.readLine();//打出登录的网页


}
//acces
URL url1 = new URL("网页的登录后的页面");
HttpURLConnection connection1 = (HttpURLConnection) url1.openConnection();
connection1.setRequestProperty("Cookie", responseCookie);//给服务器送登录后的cookie
BufferedReader br1 = new BufferedReader(new InputStreamReader(connection1.getInputStream()));


String line1= br1.readLine();


while (line1 != null) {


System.out.println(new String(line1.getBytes()));


line1 = br1.readLine();


}

 不过现在很多网站都是用了网页的Token机制,也就是说每个页面都会产生一个唯一键值,而且再加上登录的验证码的过程,这样很多网页的程序就不能再单纯的使用这个网页登录了,但是这个机制可以让大家明白怎么去保持客户端Session的连接过程。

分享到:
评论

相关推荐

    【Java】java.net.HttpURLConnection的使用.doc

    在Java编程中,`java.net.HttpURLConnection`是用于处理HTTP协议的基本类,它提供了一种与HTTP服务器通信的简单方式。下面将详细讲解如何使用`HttpURLConnection`进行网页内容获取、Cookie管理以及POST方式的数据...

    根据url来获取页面的截图

    1. **创建URL对象**:使用`java.net.URL`类的构造函数,传入目标网页的URL字符串来创建URL对象。 2. **打开连接并获取页面内容**:使用`openStream()`方法打开与URL的连接,并获取网页的HTML内容。这一步通常涉及到...

    (完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc

    1. JAVA HttpClient库的使用 2. HTTPS协议的使用 3. SSL/TLS证书的使用 4. X509TrustManager的使用 5. DefaultHttpClient类的使用 6. HttpClient的自定义 7. POST请求的发送 8. 请求头和请求体的指定 9. HTTPS服务器...

    java后台实现 get post 提交.zip

    在Java中,我们通常使用`java.net.URL`和`java.net.HttpURLConnection`来发送GET请求。以下是一个简单的示例: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net....

    java 使用URL访问网页

    本篇文章将详细讲解如何使用Java的内置类`java.net.URL`和相关API来实现这个功能。 首先,我们需要理解`URL`(Uniform Resource Locator)的概念。URL是统一资源定位符,它是互联网上的资源的唯一地址。例如,一个...

    Java 模拟cookie登陆简单操作示例

    import java.net.URL; public class ImitateLoginController { public static void main(String args[]) throws Exception { // 登陆接口地址 String loginStr = ...

    WireMock.Net:WireMock.Net是一个灵活的库,用于使用请求匹配和响应模板对Web HTTP响应进行存根和模拟。 基于http:WireMock.org的功能,但扩展了更多功能

    基于C#.NET版本其模仿基于来自JAVA功能 。 有关更多信息,另请参见以下WIKI页面: 。 主要特点 HTTP响应存根,可在URL /路径,标题,cookie和主体内容模式上匹配 库可用于单元测试和集成测试 作为独立进程,...

    JavaHTTP协议实现

    在Java中,我们可以使用`java.net.URL`和`java.net.URLConnection`类来实现GET请求。以下是一个简单的示例,展示了如何使用GET方法下载服务器上的图片: ```java import java.io.InputStream; import java.net.URL;...

    Java.Browser

    Java提供了`java.net.URL`类来处理URL,`java.net.HttpURLConnection`或第三方库如Apache HttpClient来实现HTTP通信。 **4. HTML解析** 浏览器需要解析接收到的HTML内容,并将其渲染成可视化的页面。Java可以使用...

    运用java实现简单的浏览器功能

    在Java中,我们可以使用`java.net.URL`类来处理URL,以及`java.net.HttpURLConnection`或`java.net.URLConnection`类来发起HTTP请求。这些类允许我们连接到服务器,发送GET请求,接收响应,并读取返回的数据。 1. *...

    Java_Web_Browser.zip_Links

    2. **URL和HTTP请求**:为了加载网页,Java程序需要使用`java.net.URL`类来表示网页地址,并通过`HttpURLConnection`或第三方库如Apache HttpClient发送HTTP请求,获取网页内容。 3. **HTML解析**:加载的网页内容...

    java网络编程机器人 bot.jar

    2. **HTTP协议处理**:如果"bot.jar"涉及到网页抓取或网页交互,那么可能使用了`java.net.HttpURLConnection`或者第三方库如Apache HttpClient或OkHttp。这些库允许Java程序发送GET、POST等HTTP请求,并处理响应。 ...

    java 监听本地文件自动上传服务器

    import java.net.URL; public class FileUploader { public static void uploadFile(String serverUrl, File file) throws IOException { HttpURLConnection connection = null; DataOutputStream outputStream ...

    ftp.rar_ftp_ftp java_java ftp

    在Java中,实现FTP服务器可能需要使用`java.net.ServerSocket`监听客户端连接,`java.net.Socket`处理每个客户端的请求,以及自定义数据流处理来实现FTP命令的解析和响应。通常,服务器端需要处理如USER、PASS(用户...

    java,HttpClient模拟上传,绕过SSL认证

    本文将详细介绍如何使用Java和HttpClient来模拟HTTPS文件上传,并跳过SSL验证。 首先,我们需要导入必要的依赖。如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache....

    JavaNetworkProgramming.pdf

    - **HTTP客户端示例**:使用`java.net.HttpURLConnection`类实现一个简单的HTTP客户端,模拟浏览器向服务器发送GET或POST请求,获取资源或提交数据。 - **TCP/IP Socket示例**:通过`java.net.Socket`和`java.net....

    编程实现显示URL中的Html文件

    下面是一个简单的Java程序,使用`java.net`库从URL获取HTML并将其打印到控制台: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import ...

    java文件上传下载

    在Java中,可以使用`java.net.Socket`类进行TCP连接,或者使用`java.net.URL`和`java.net.URLConnection`处理HTTP请求。文件下载则相反,是从服务器获取文件并保存到本地。 **FTP**,全称为文件传输协议,是一种...

    详解Java两种方式简单实现:爬取网页并且保存

    import java.net.URL; import java.net.URLConnection; public class Spider { public static void main(String[] args) { String filepath = "d:/124.html"; String url_str = "http://www.hao123.com/"; URL ...

Global site tag (gtag.js) - Google Analytics