php远程连接http方式
以下这三者是通过GET方式来获取数据
1、socket 方式
一般是指定网址、端口号、超时时间。
再对报头进行修改以及传递参数,包括:header、method、content,
返回的内容包括header报头。
python的httplib库,php的fsockopen的实现方式与此相同。
$dhost = "wx.upsmate.com";
$dport = 80;
$params = "/cgi-bin/getuserlistpage/?access_token=V_5305328e3e107bd2893666052ea16437"; $fp = fsockopen($dhost, $dport, $errno, $errstr, 5);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET $params HTTP/1.1\r\n";
$out .= "Host: $dhost\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out);
$response_data = "";
while (!feof($fp)) {
$response_data .= fgets($fp, 128);
}
// echo substr($response_data, strpos($response_data,"\r\n\r\n")+4);
echo $response_data; $fp1 = fopen("tmp1.php","w");
fwrite($fp1, $response_data);
fclose($fp1); fclose($fp);
}
2、文件流方式
fopen、file_get_contents这两种方式,两者最主要的区别在于:fopen可以一行行读取,而file_get_contents是一次性获取全部内容到一个字符串内。
两者都可以使用stream_context_create()创建资源流。而资源流的作用是:超时设置、代理服务器、请求方式、头信息设置这四个方面。
$opts = array(
'http'=>array(
'method'=>"GET",
'timeout'=>5,
)
); $context = stream_context_create($opts); $url = "http://wx.upsmate.com/cgi-bin/getuserlistpage/?access_token=V_5305328e3e107bd2893666052ea16437"; $context = file_get_contents($url,false,$context);
echo $context;
fopen方式:
<?php
$timeout = array(
'http' => array(
'timeout' => 5 //设置一个超时时间,单位为秒
)
);
$ctx = stream_context_create($timeout);
if ($fp = fopen("http://example.com/", "r", false, $ctx)) { $data = "";
while(!feof($fp)) {
$data .= fread($fp,4196);
}
fclose($fp);
}
?>
file_get_contents post数据样例:
<?
$data = array("name" => 'tim',"content" => 'test');
$data = http_build_query($data);
$opts = array(
'http'=>array(
'method'=>"POST",
'header'=>"Content-type: application/x-www-form-urlencoded\r\n".
"Content-length:".strlen($data)."\r\n" .
"Cookie: foo=bar\r\n" .
"\r\n",
'content' => $data,
)
);
$cxContext = stream_context_create($opts);
$sFile = file_get_contents("http://localhost/response.php", false, $cxContext); echo $sFile; ?>
参考网址:http://blog.csdn.net/heiyeshuwu/article/details/7841366
php远程连接http方式的更多相关文章
- mysql 8.0.13开启远程连接 配置方式
1:linux登录mysql [root@localhost mysql]# mysql -u root -p Enter password: Welcome to the MySQL monitor ...
- c# Oracle 远程连接方式 plsql 连接oracle 11g 64位
1.本地连接字符串: string connect = "Data Source=orcl;user=XXX;password=XXX;Persist Security Info=Tru ...
- root密码重置、Linux目录结构和远程连接Linux
一.root如何重置密码 1. 重启 Linux 系统主机并出现引导界面时,按下键盘上的 e 键进入内核编辑界面 2. 在 linux16 参数这行的最后面追加“rd.break”参数,然后按下 Ct ...
- 远程连接Linux
远程连接Linux 为什么要远程连接Linux 在实际的工作场景中,虚拟机界面或者物理服务器本地的终端都是很少接触的,因为服务器装完系统之后,都要拉倒IDC机房托管,如果是购买的云主机,那更碰不到 ...
- linux学习笔记一:远程连接linux服务器
环境介绍:win7电脑,通过VM虚拟出linux系统,安装centOS7 通过Xshell连接linux,ftp访问服务器资源. 遇到的问题,ftp连不上linux 解决:linux上安装ftp服务 ...
- Linux(1)- 服务器核心知识、Linux入门、VMware与centeos安装、远程连接linux、linux基本命令使用
一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...
- 4,远程连接Linux
为什么要远程连接Linux 在实际的工作场景中,虚拟机界面或者物理服务器本地的终端都是很少接触的,因为服务器装完系统之后,都要拉倒IDC机房托管,如果是购买的云主机,那更碰不到服务器本体了,只能通过远 ...
- jconsole远程连接 jmx配置注意事项
由于在测试程序时需要收集程序运行时的内存,CPU等消耗情况.选择了jconsole这个jdk自带工具来观察.为了不影响程序运行状态,用远程连接的方式来具体观察. 首先,程序是放在ubutun系统服务器 ...
- Linux使用SSH远程连接方式和更改密码 ,自己空间转移过来的。
一. 远程连接Linux系统需要一个方便的SSH连接工具putty就不错!工具在本日志的附件下载,解压密码是QQ号,云盘访问密码 90891.把远程主机ip和端口号填写上然后选择连接方式为“SSH”. ...
随机推荐
- Map集合遍历的2种方法
Map是一个集合的接口,是key-value相映射的集合接口,集合遍历的话,需要通过Iterator迭代器来进行. Iterator是什么东西: java.util包下的一个接口: 对 collect ...
- 【转】IPtables学习笔记
写在前面,大家测试玩iptables时要记得自己配置了那些东西,测试完成后记得删除啊,博主忘了删除一个input REJECT链的一条记录,后续测试搭建了apache服务器,始终无法访问,最后抓包发现 ...
- Altium Designer 15 --- Nets Update
Now I want to introduce the use of 'Configure Physical Nets', as follows: If you has finished the PC ...
- logback 详解
原创文章,转载请指明出处:http://aub.iteye.com/blog/1103685, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- orancle的安装和配置
1.安装 Oracle 版本:Oracle Database 10g Release 2 (10.2.0.1) 下载地址: http://www.oracle.com/technology/softw ...
- k-nearest-neighbor算法
1. kNN 1.1 基本的kNN模型 kNN(k-nearest neighbor)的思想简单来说就是,要评价一个未知的东西U,只需找k个与U相似的已知的东西,并通过k个已知的,对U进行评价.假如要 ...
- Java web 使用页面压缩
借助类,相关依赖: <!-- https://mvnrepository.com/artifact/net.sourceforge.pjl-comp-filter/pjl-comp-filter ...
- Nginx实现简易泛域名CDN节点
如何使用Nginx泛域名解析+反向代理+静态资源缓存呢? 安装nginx,安装过程不再赘述,记得带上pcre.gzip.sub.status这几个模块,另外如果想开通在线清理缓存功能,需要安装ngx_ ...
- yourphp问题中心
1.前台读不出字段.数据库列表有的,但前台就适读不出来. 2.浏览次数+1与+2的问题 浏览+ <a href="{:URL('User-Register/index')}" ...
- sqlserver检测死锁;杀死锁和进程;查看锁信息
http://blog.sina.com.cn/s/blog_9dcdd2020101nf4v.html sqlserver检测死锁;杀死锁和进程;查看锁信息 ( ::)转载▼ 标签: sql 检测死 ...