我正在学习Java,我遇到了一个挑战,要建立一个网址提取器。该程序除了扫描给它的页面以查找其中的外部链接之外什么都不做。我知道如何做到这一点,但我在实现套接字类时遇到了一些麻烦。我需要帮助的是我需要创建一个套接字,它将使用端口80连接到html页面。接下来,我需要将该页面的完整html插入到套接字的输入流中,以便我可以使用它来操作以提取链接。
总而言之,我需要澄清以下事项:
编辑:对不起,我的不好。输入流的混淆输出流。
- 将页面的html输入到套接字的输入流中。
- 将输入流打印到控制台上。
醇>
答案 0 :(得分:0)
使用套接字执行此操作时,请尝试使用UrlConnection类。
URL connection= new URL("http://lums.edu.pk);
URLConnection yc = connection.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
如果您尝试使用套接字,则需要使用该套接字来清除http协议和how you can retrieve data的内容。最后使用socket发送GET请求。查看this问题,看看它是如何运作的。
答案 1 :(得分:-1)
由于您不需要使用套接字,因此使用为您处理HTTP请求的库(在本例中为Java中包含的库)更容易,并且只是为您提供了一个简单的流页面内容:
public class UrlExtractor {
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.stackoverflow.com/");
URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
// read the page content (usually HTML) from in here
in.close();
}
}
答案 2 :(得分:-2)
查看this答案以创建OutputStream。使用PrintStream类打印OutputStream。