最近因为要用到一些模拟提交get和post请求的功能.以前一般用3种方式实现
1、使用fsocket函数,通过socket链接 构造http头的方式实现.比较原始,http头的构造往往需要写大段的字符串代码.
2、使用一些开源的http模拟类泪如 snoopy等
3、利用php的curl扩展.
后两种方法都会带来额外的系统开销.使用curl则还有一堆复杂的参数需要设定.
其实从php5.0以后开始file_get_contents函数就增加了context的支持.
那么构造一个模拟的http请求,就非常简单了.
$context['http'] = array(
'method' => 'POST',
'header' => "Accept:application/json, text/javascript, */*; q=0.01\r\n".
"Accept-Charset:GBK,utf-8;q=0.7,*;q=0.3\r\n".
......
'content'=>''
'timeout'=>5
);
file_get_contents($url,task, false, stream_context_create($context))
那么一个简单的http post请求就完成了