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

socket访问HTTP/1.1服务器

阅读更多
通过socket访问web并打印才出web内容.下面的方法比较原始,通过最底层的API实现.笔者再通过commons-io来实现.
package test.common.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;

public class IO {

	public static void main(String[] args) throws Exception {
		Socket s = new Socket("121.9.238.94", 80);
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
		bw.write("GET / HTTP/1.1");
		bw.newLine();
		bw.write("Host:121.9.238.94:80");
		bw.newLine();
		bw.write("Content-Type:text/html");
		bw.newLine();
		bw.newLine();
		bw.flush();
		BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
		String str = null;
		while ((str = br.readLine()) != null) {
			System.out.println(str);
		}
		bw.close();
		br.close();
		s.close();
	}
}


    引入commons-io,只需要以下3行代码,既可实现上述功能.
package test.common.io;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import org.apache.commons.io.FileUtils;

public class IO {

	public static void main(String[] args) throws IOException {
		URL url = new URL("http://www.163.com");
		File file = new File("c:\\163.html");
		FileUtils.copyURLToFile(url, file);
		System.out.println(FileUtils.readFileToString(file, "gbk"));
	}
}
分享到:
评论

相关推荐

    IIS简单模拟(C#)

    IIS基本原理: 浏览器发出请求,服务器处理请求,服务器返回响应 即 请求-->处理-->响应 ...http/1.1中的长连接的意思是一个页面的访问在一个socket中完成 http/1.0的处理是处理完一个请求,马上关闭,不会保持连接

    使用浏览器访问python写的服务器程序

    代码如下所示: import socket import re import multiprocessing def service_client(client... #GET /index.html HTTP/1.1 ret=re.match(r[^/]+ /([\S]+\s|\s),recv_data) file_n=index.html if ret: if ret.gro

    network-socket-programming:该项目实现了运行HTTP1.1简化版本的HTTP客户端和服务器。 具体来说,您将实现两个HTTP命令

    第I部分:运行HTTP / 1.1简化版本的HTTP客户端和服务器。 具体来说,您将实现两个HTTP命令:GET和PUT 第II部分:UDP与TCP-性能评估 说明文件: 第I部分执行提交的代码的指令:SocketPgmgClient的参数 主持人 港口 ...

    hayabusa:同时具有Web API和实时通信的游戏服务器端框架

    内置访问控制 内置基本身份验证 内置请求参数检查 有用的内置中间件库 ETC。 API文档生成 自动生成基本的API文档 通过UDP套接字进行实时网络通信 低延迟,低内存使用率和高吞吐量 每请求微秒级的时间成本 支持KCP和...

    Python套接字服务端简单实现,通过浏览器访问

    # import socket def service_client(new_socket): # 为这个客户端返回数据,即http请求 # Get / HTTP/1.1 request = new_socket.recv(1024) print(request) # 2.返回http格式的数据,给浏览器 # 2.1准备发送给...

    java项目p2p源码-p2psockets:在P2P网络上创建Socket/ServerSocket抽象和类似DNS的命名空间

    java项目p2p源码#P2P 套接字 ...HTTP/1.1 客户端(Apache Commons HTTP-Client); 网关(智能缓存)使现有浏览器可以访问 P2P 网站; 以及一个 WikiWiki (JSPWiki),可用于在您的本地机器上托管 Wi

    Web服务器性能测试研究

    1.1 研究背景 1 1.2 国内外研究现状 1 1.3 论文主要研究内容 2 1.4 论文组织结构 3 1.5 本章小结 3 第二章 Web服务器概述 5 2.1 Web服务器的基本概念 5 2.2 HTTP协议的运作方式 6 2.2.1 HTTP协义基本介绍 6 2.2.2 ...

    易语言-HttpServer1.1 带例子演示,带模块封装例子

    第一个例子特效是浏览,并不支持post登录,我也就随便下载的。 第二个例子是支持post提交,有个登录消息传输,演示了怎么登录成功跳转新的页面。...这个是Hpsocket二次封装的,队列+线程池+完成端口。

    tcp-metrics:一种使用不同方法测量TCP连接的往返时间和带宽的工具

    原因是大多数静态资源都可以通过HTTP使用,并且很容易在HTTP服务器上部署静态测试资源。 可以使用两种方法来测量Goodput: 1 .:使用第一个socket.read()时间戳作为开始时间。 2 .:使用更高版本的后续socket....

    高速授时时间同步校准器 1.1 ( C++Builder )

    原理: 通过访问 标准服务器 获得标准时间, 然后设置本地 时间进行同步, 所以如果防火墙拦截询问, 请选择【解除阻止】或者【同意访问网络】 如果出现类似【Socket Error # 10053】错误,表示无法访问网络 特点:与...

    Linux高性能服务器编程

    第4章 TCPIP通信案例:访问Internet上的Web服务器 4.1 实例总图 4.2 部署代理服务器 4.2.1 HTTP代理服务器的工作原理 4.2.2 部署squid代理服务器 4.3 使用tcpdump抓取传输数据包 4.4 访问DNS服务器 4.5 本地...

    WWW服务器的构建.doc

    关键词 WEB服务器、 IIS 、HTTP、HTML 1 引 言 1.1 课题背景 Internet作为世界上最大的信息资源宝库,其中的信息几乎涉及到了各个领域,例如 :政治、经济、文艺、科教等。这些信息以文件、数据库、公告牌、目录...

    一个进程池的服务器程序

    由于listenfd是在fork之前就有的,所以所有子进程都可以访问到,不需用到“进程间文件描述符传递”问题; 4,子进程每accept到一个请求都告诉父进程,父进程把请求数加1;子进程没完成一个请求,父进程把请求数减1;...

    基于Android的聊天室应用 ChatRoom 1.2

    一、端点连接机制:基于客户端到服务器端的socket连接,在服务器端利用android系统提供的线程池处理用户的并发访问。 二、消息发送原理:在服务器端缓存所有当前在线用户,对于接收到的文字消息或语音消息循环发送...

    HttpClient以及获取页面内容应用

    //HttpMethod method = new PostMethod("http://java.sun.com";); client.executeMethod(method); //打印服务器返回的状态 System.out.println(method.getStatusLine()); //打印返回的信息 System.out.println...

    Linux高性能服务器编程清晰PDF+源码

    目录 前言 第一篇 TCPIP协议详解 第1章 TCPIP协议族 1.1 TCPIP协议族体系结构以及主要...第4章 TCPIP通信案例:访问Internet上的Web服务器 4.1 实例总图 4.2 部署代理服务器 ....... 代码 springsnail.....

    基于java的局域网聊天系统-毕业设计.doc

    原始数据报套接字(Raw Socket) 提供对网络下层通讯协议(如IP协议)的直接访问,它一般不是提供给普通用户 的,主要用于开发新的协议或用于提取协议较隐蔽的功能。 图2 面向连接的SOCKET编程模型 图3 面向非连接的...

    绝对价值不菲的对战平台源代码

    1.1编写目的 4 1.2背景 4 1.2.1 中国战网对战平台产生的背景 4 1.2.2 对战平台的市场分析 4 1.3定义 5 1.4参考资料 6 1.5开发软件 6 2系统的结构 6 2.1客户端系统结构模块划分 6 2.1.1管道模块 6 2.1.2用户socket...

    (超赞)JAVA精华之--深入JAVA API

    2.5 用连接池提高Servlet访问数据库的效率 2.6 应用服务器的集群策略及Java EE 5.0 2.7 Servlet中的Listener的应用 2.8 JSTL(JSP标准标签库)介绍 3 JAVA扩展 3.1 Log4j基本使用方法 3.2 Dom4j 使用简介 3.3 Java ...

    .net 稳定 高效 易用 可同步 TCP 通信框架

    1、可以代替 Oracle,Mysql客户端 在不安装Oracle,MySql客户端的情况下访问, 对数据库进行间接访问(需开始框架的服务器端)。 2、可以使本来没有网经功能的Sqlite具有网络访问的能力。(也是需要开启服务器端...

Global site tag (gtag.js) - Google Analytics