socket编程发送GET请求
来源:互联网 发布:程序员 白发老头图片 编辑:程序博客网 时间:2024/06/08 12:07
<?php/* * PHP + socket 编程 运用GET方法模拟一下发送HTTP请求 *///http请求类的接口interface Proto{ //连接url function conn($url); //发送get查询 function get(); //发送post查询 function post(); //关闭连接 function close(); }//通过类调用接口class Http implements Proto{ const CRLF = "\r\n"; //换行符 protected $errno = -1; //错误号 protected $errstr = ''; //错误字符串 protected $response = ''; protected $url = null; //url数组 protected $fh = null; protected $version = 'HTTP/1.1'; //HTTP协议名称 protected $line = array(); //请求行 protected $header = array(); //头信息 protected $body = array(); //主体信息 //调用公共函数 public function __construct($url){ $this->conn($url); //分析URL $this->setHeader('Host:'.$this->url['host']); } //此方法负责写请求行 protected function setLine($method){ $this->line[0] = $method.' '.$this->url['path'].' '.$this->version; } //此方法负责写头信息 protected function setHeader($headerline){ $this->header[] = $headerline; } //此方法负责写主体信息 protected function setBody(){ } //连接url public function conn($url){ $this->url = parse_url($url); //调用一个系统函数 //判断端口 if (!isset($this->url['port'])) { $this->url['port'] = 80; } //主机、端口号、错误号、错误的字符串、超时时间 $this->fh = fsockopen($this->url['host'],$this->url['port'],$this->errno,$this->errstr,3); //连主机 是个资源 } //构造get请求的数据 public function get(){ $this->setLine('GET'); $this->request(); return $this->response; } //构造post请求的数据 public function post(){ } //真正请求 public function request(){ //把请求行,头信息,实体信息,放在一个数组里, $req = array_merge($this->line,$this->header,array(''),$this->body,array(''));// print_r($req); $req = implode($req,self::CRLF);// echo $req; fwrite($this->fh,$req); while (!feof($this->fh)) { //之要不到结尾就一直读 $this->response.= fread($this->fh,1024); } $this->close(); //关闭连接 } //关闭连接protected function close(){ } }$url = 'http://news.163.com/16/1011/08/C336UQQV00014PRF.html';$http = new Http($url);echo $http->get();//print_r($http);//$http->request();?>
0 0
- Socket编程发送get请求
- socket编程发送GET请求
- socket编程---实现get post 向http发送请求
- 使用socket发送http请求(GET/POST)
- 使用socket发送http请求(GET/POST)
- 使用Socket发送GET/POST请求
- 使用socket发送http请求(GET/POST)
- [php]模拟socket发送GET,POST请求
- C++网络编程 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- C++网络编程 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- socket编程实现http GET请求
- 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- [Socket]利用Jatarka下HttpClient发送(Get && Post)请求
- [Socket]利用Android下的HttpClient发送GET && POST请求
- 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- 实用文章收集
- 去除字符串中的空格、回车、换行符、制表符
- 图片旋转 Mat 版本
- Ubuntu系统下Android开发环境搭建相关问题
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- socket编程发送GET请求
- 使用Openjdk7编译android源码出现"Could not initialize NSS"错误的解决办法
- nginx安装配置记录
- 用shader在love2d里实现精灵描边效果
- C与指针
- java--图形界面(2)
- threadPool example
- java加密 MessageDigest(一)
- 27.1.1 图表控件概述