<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="抓取或者模拟请求之php利用socket发送HTTP请求（GET，POST）" id="card1">
<p> 游客</p><p>
标题:抓取或者模拟请求之php利用socket发送HTTP请求（GET，POST）<br/>
正文:<br/>
在日常编程中相信很多人和我一样大部分时间是利用浏览器向服务器提出GET，POST请求，那么可否利用其它方式提出GET,POST请求呢？答案必然是肯定的。了解过HTTP协议的人知道，浏览器提交请求的实质是向服务器发送一个请求信息，这个请求信息有请求行，请求头，请求体（非必须）构成。服务器根据请求信息返回一个响应信息。连接断开。 　　HTTP请求的格式如下所示：&amp;lt;request-line&amp;gt;&amp;lt;headers&amp;gt;&amp;lt;blank line&amp;gt;[&amp;lt;request-body&amp;gt;]　　HTTP响应的格式与请求的格式十分相似：&amp;lt;status-line&amp;gt;&amp;lt;headers&amp;gt;&amp;lt;blank line&amp;gt;[&amp;lt;response-body&amp;gt;]　　我们可以利用HTTP发送请求的原理，可以重新考虑利用socket发送HTTP请求。　　Socket的英文原义是&amp;ldquo;孔&amp;rdquo;或&amp;ldquo;插座&amp;rdquo;。通常也称作&amp;ldquo;套接字&amp;rdquo;，用于描述IP地址和端口，是一个通信链的句柄，可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件，同时提供几种服务。每种服务都打开一个Socket，并绑定到一个端口上，不同的端口对应于不同的服务。如此看来，其实利用socket操作远程文件和读写本地的文件一样容易，把本地文件看成通过硬件传输，远程文件通过网线传输就行了。　　因而可以将发送请求的考虑成 建立连接-&amp;gt;打开socket接口(fsockopen())-&amp;gt;写入请求（fwrite()）-&amp;gt;读出响应（fread()-&amp;gt;关闭文件（fclose()）。话不多说，直接上代码：&amp;lt;?php interface Proto {  // 连接url  function conn($url);  //发送get查询  function get();  // 发送post查询  function post();  // 关闭连接  function close();}class Http implements Proto {  const CRLF = &amp;quot;\r\n&amp;quot;;  protected $errno = -1;  p<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2180&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2180&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2180&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2180&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2180&amp;Page=7">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=2180">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=2180">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>