2019-05-06模拟浏览器访问服务端

模拟浏览器访问 服务器

模拟浏览器 实际上就是 按照 协议的规则 ,发送对应的数据 ,使得服务器可以将该数据解析,并作出相应的响应

代码:模拟浏览器 按照http(超文本协议) 向浏览器发送

1.请求方式 GET访问的文档  /index.html 协议的版本HTTP/1.1

2.以键值对的方式发送请求头,如语言 ,位置 ,连接方式.....(这也是爬虫的伪装服务器的原理)

3.发送请求体, 如密码 用户名等


public class copy_demo {

public static void main(String[] args) throws UnknownHostException, IOException {

Socket s =new Socket("182.254.197.196",80);

//模拟浏览器,向服务器端发送符合http协议的请求消息

PrintWriter out=new PrintWriter(s.getOutputStream(),true);

out.println("GET /index.html HTTP/1.1");

out.println("Accept: */*");

out.println("Host: 169.254.103.122");//本机地址

out.println("Connection: close");//连接方式

out.println();

out.println();

BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream(),"utf-8"));

String str;                                                                //使用↑来编码

while((str=in.readLine())!=null) {

System.out.println(str);

}

}

}




当然,面向对象的java将其封装成对象, 可以通过URL类对指定 协议 IP 文档 的服务器进行访问。

public static void main(String[] args) throws IOException {

String str_url="http://182.254.197.196/index.html";

URL url = new URL(str_url);

System.out.println("protocol"+url.getProtocol());

System.out.println("getHost"+url.getHost());

System.out.println("getPort"+url.getFile());

System.out.println("getFile"+url.getPath());

System.out.println("getPath"+url.getPath());

System.out.println("getQuery"+url.getQuery());

BufferedInputStream bis=new BufferedInputStream(url.openStream());

byte[] b=new byte[1024];

int len;

while((len=bis.read(b))!=-1) {

System.out.println(new String(b,0,len,"utf-8"));

}

bis.close();

}


网络编程 目前只学习了 一些基础的理论和一些简单的java代码与 服务器的交互 ,后期会再次深入学习的!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,347评论 0 9
  • 说明:解决上传文件乱码问题,上传文件件,附带参数等。 引入包: org.apache.httpcomponents...
    MrLe688阅读 1,007评论 0 0
  • 个人专题目录 Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。下...
    Java及SpringBoot阅读 3,415评论 0 5
  • 经验:1.在网络端接收数据后写入本地时要用write(byte[],0,len),不要用write(byte[])...
    123yuan123阅读 401评论 0 2
  • ----弱水三千 填词 一杯碧螺春 一杯尼罗河水 容得下万物 经不起风吹 流水本无意 竟会被弹奏成经典 辗转一万年...
    d477f1fabd2f阅读 248评论 1 5