`
lvwenwen
  • 浏览: 932115 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

Socket/UrlConnection获取网页

阅读更多
package com.itcast.socket;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.Socket;
import java.net.URL;

/**
 * 
 * @author Dao
 */
public class TestSocket {

	public TestSocket() {
	}

	public static void main(String args[]) {
		// 你想获取代码的网站
		String strServer = "www.sina.com";
		// 起始页面,/为根页
		String strPage = "/";

		try {
			// 设置端口,通常http端口不就是80罗,你在地址栏上没输就是这个值
			int port = 80;
			// 用域名反向获得IP地址
			InetAddress addr = InetAddress.getByName(strServer);

			// 建立一个Socket
			Socket socket = new Socket(addr, port);

			// 发送命令,无非就是在Socket发送流的基础上加多一些握手信息,详情请了解HTTP协议
			BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(
					socket.getOutputStream(), "UTF-8"));
			wr.write("GET " + strPage + " HTTP/1.0\r\n");
			wr.write("HOST:" + strServer + "\r\n");
			wr.write("Accept:*/*\r\n");
			wr.write("\r\n");
			wr.flush();

			// 接收Socket返回的结果,并打印出来
			BufferedReader rd = new BufferedReader(new InputStreamReader(
					socket.getInputStream()));
			String line;
			while ((line = rd.readLine()) != null) {
				System.out.println(line);
			}
			// wr.close();
			rd.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
package com.itcast.socket.Second;
import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.InputStreamReader;  
import java.net.HttpURLConnection;  
import java.net.URL;  
import java.net.URLConnection;  
  
public class URLTest {  
  
    public static void main(String[] args) {  
        URL url;  
        URLConnection urlconn;  
        try {  
            url = new URL("http://www.google.com.hk");  
            urlconn = url.openConnection();  
            HttpURLConnection httpConnection = (HttpURLConnection) urlconn;  
            httpConnection.setConnectTimeout(1000000);  
            httpConnection.setReadTimeout(1000000);  
//          httpConnection.setRequestProperty("User-Agent", "new");  
//          httpConnection.setRequestMethod("POST");  
            InputStream in = httpConnection.getInputStream();  
            BufferedReader br = new BufferedReader(new InputStreamReader(in, "Big5"));  
  
            String line = "";  
            while((line = br.readLine()) != null) {  
                System.out.println(line);  
            }  
            br.close();  
            in.close();  
        } catch(IOException e) {  
            e.printStackTrace();  
        }  
    }  
}  
 

 

分享到:
评论

相关推荐

    HttpClient以及获取页面内容应用

    1.6.1发送get请求获取网页内容 HttpClient client = new HttpClient(); //设置代理服务器地址和端口 //client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port); //使用GET方法,如果服务器...

    Android实例代码

    13.1、基于TCP协议的网络通信(套接字Socket):Socket; ServerSocket; 13.2、使用URL访问网络资源:URL; URLConnection; 13.3、使用HTTP访问网络:HttpURLConnection; HttpClient; 13.4、使用WebView视图显示网页...

    java自学之道

    2.4 Java.net包中URLConnection类 2.5 AppletContext接口类 2.6 获取网络属性信息 2.7 创建输入流(InputStream)对象 3、SOCKET连接 3.1 Socket通信的一般结构 3.2 TCP Socket编程 3.2.1 Socket类 3.2.2 ServerSocket...

    疯狂Android讲义(第2版)源代码 第6章~第9章

    13.1、基于TCP协议的网络通信(套接字Socket):Socket; ServerSocket; 13.2、使用URL访问网络资源:URL; URLConnection; 13.3、使用HTTP访问网络:HttpURLConnection; HttpClient; 13.4、使用WebView视图显示网页...

    Java开发技术大全 电子版

    9.3使用getClass()方法获取类信息290 9.4使用类标记292 9.5使用关键字instanceof判断所属类292 9.6利用反射获取运行时类信息293 9.6.1使用isInstance()方法判断所属类294 9.6.2获取成员方法信息295 9.6.3获取...

    疯狂Android讲义源码

    目 录  第1章 Android应用与开发环境 1  1.1 Android的发展和历史 2  1.1.1 Android的发展和简介 2  1.1.2 Android平台架构及特性 3  1.2 搭建Android开发环境 5 ... 16.2 获取LocationProvider 568 ...

    疯狂Android讲义.part2

    13.1.3 使用Socket进行通信 479 13.1.4 加入多线程 483 13.2 使用URL访问网络资源 489 13.2.1 使用URL读取网络资源 489 13.2.2 使用URLConnection提交 请求 491 13.3 使用HTTP访问网络 496 13.3.1 使用...

    疯狂Android讲义.part1

    13.1.3 使用Socket进行通信 479 13.1.4 加入多线程 483 13.2 使用URL访问网络资源 489 13.2.1 使用URL读取网络资源 489 13.2.2 使用URLConnection提交 请求 491 13.3 使用HTTP访问网络 496 13.3.1 使用...

Global site tag (gtag.js) - Google Analytics