gpt4 book ai didi

java - 使用java套接字获取网页

转载 作者:行者123 更新时间:2023-12-01 07:39:13 25 4
gpt4 key购买 nike

我想获取一个网页,只是获取数据(不解析或渲染任何内容),只是捕获http请求后返回的数据。

我正在尝试使用 JavaRuntime 库的高级类 Socket 来实现此目的。

我想知道这是否可能,因为我不太清楚用于两点通信的底层,或者我不知道问题是否来 self 自己的系统。

.

这是我的代码正在执行的操作:

1) 设置套接字。

this.socket = new Socket( "www.example.com", 80 );

2) 设置用于此通信的适当流。

this.out = new PrintWriter( socket.getOutputStream(), true);
this.in = new BufferedReader( new InputStreamReader( socket.getInputStream() ) );

3) 请求页面(这是我不确定这样做是否可以的地方)。

String query = "";
query += "GET / HTTP/1.1\r\n";
query += "Host: www.example.com\r\n";
...
query += "\r\n";

this.out.print(query);

4) 读取结果(在我的例子中什么也没有)。

System.out.print( this.in.readLine() );

5) 关闭套接字和流。

最佳答案

如果您使用的是 *nix 系统,请查看 CURL ,它允许您使用命令行从 Internet 检索信息。比 Java 套接字连接更轻量。

如果您想使用 Java,并且只是从网页检索信息,请查看 Java URL 库 ( java.net.URL )。一些示例 Java 代码:

URL ur = new URL("www.google.com");
URLConnection conn = ur.openConnection();
InputStream is = conn.getInputStream();
String foo = new Scanner(is).useDelimiter("\\A").next();
System.out.println(foo);

这将获取指定的 URL、获取数据(在本例中为 html)并将其输出到控制台。可能需要调整分隔符位,但这适用于大多数发送数据的网络端点。

关于java - 使用java套接字获取网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7500342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com