PHP(CURL)POST/GET数据调用API
2017-03-30 13:20
806 查看
PHP(CURL)POST/GET数据调用API示例
POST
GET
POST
/* * * 获取最新视频/全部视频列表 getNewList 作用:获取用户最新上传视频的列表 URL http://v.polyv.net/uc/services/rest?method=getNewList 支持格式 XML/JSON HTTP请求方式 POST,GET */ $url = 'http://v.polyv.net/uc/services/rest'; $data = array( 'readtoken'=>'', 'method'=>'getNewList', 'catatree'=>'1,1464143968874', 'numPerPage'=>2, 'pageNum'=>1 ); $json_data = postData($url, $data); //$array = json_decode($json_data,true); //$array = json_decode($json_data); echo "<pre>"; print_r($json_data); echo "</pre>"; /** * @param $url * @param $data * @return mixed */ function postData($url, $data) { $ch = curl_init(); $timeout = 300; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $handles = curl_exec($ch); curl_close($ch); return $handles; }
GET
//初始化 $ch = curl_init(); //设置选项,包括URL curl_setopt($ch, CURLOPT_URL, "http://v.polyv.net/uc/services/rest?method=getPlayListById&readtoken=p66RaX4rJN-mjIOWB2jQ5-lXVB4uTZUP&id=1464181164323"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); //执行并获取HTML文档内容 $output = curl_exec($ch); //释放curl句柄 curl_close($ch); //打印获得的数据 print_r($output); 2 . PHP的curl常用的5个例子 // 1,抓取无访问控制文件 $ch= curl_init(); curl_setopt($ch, CURLOPT_URL,"http://localhost/mytest/phpinfo.php"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//如果把这行注释掉的话,就会直接输出 $result=curl_exec($ch); curl_close($ch); // 2,使用代理进行抓取 $ch= curl_init(); curl_setopt($ch, CURLOPT_URL,"http://blog.51yip.com"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); curl_setopt($ch, CURLOPT_PROXY, 125.21.23.6:8080); //url_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');如果要密码的话,加上这个 $result=curl_exec($ch); curl_close($ch); // 3,post数据后,抓取数据 $ch= curl_init(); /*在这里需要注意的是,要提交的数据不能是二维数组或者更高 *例如array('name'=>serialize(array('tank','zhang')),'sex'=>1,'birth'=>'20101010') *例如array('name'=>array('tank','zhang'),'sex'=>1,'birth'=>'20101010')这样会报错的*/ $data=array('name'=>'test','sex'=>1,'birth'=>'20101010'); curl_setopt($ch, CURLOPT_URL,'http://localhost/mytest/curl/upload.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); curl_exec($ch); // 4.抓取一些有页面访问控制的页面 $ch= curl_init(); curl_setopt($ch, CURLOPT_URL,"http://club-china"); /*CURLOPT_USERPWD主要用来破解页面访问控制的 *例如平时我们所以htpasswd产生页面控制等。*/ //curl_setopt($ch, CURLOPT_USERPWD, '231144:2091XTAjmd='); curl_setopt($ch, CURLOPT_HTTPGET, 1); curl_setopt($ch, CURLOPT_REFERER,"http://club-china"); curl_setopt($ch, CURLOPT_HEADER, 0); $result=curl_exec($ch); curl_close($ch); // 5.模拟登录到sina functionchecklogin($user,$password) { if( emptyempty($user) || emptyempty($password) ) { return0; } $ch= curl_init( ); curl_setopt($ch, CURLOPT_REFERER,"http://mail.sina.com.cn/index.html"); curl_setopt($ch, CURLOPT_HEADER, true ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt($ch, CURLOPT_USERAGENT, USERAGENT ); curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR ); curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT ); curl_setopt($ch, CURLOPT_URL,"http://mail.sina.com.cn/cgi-bin/login.cgi"); curl_setopt($ch, CURLOPT_POST, true ); curl_setopt($ch, CURLOPT_POSTFIELDS,"&logintype=uid&u=".urlencode($user)."&psw=".$password); $contents= curl_exec($ch); curl_close($ch); if( !preg_match("/Location: (.*)\\/cgi\\/index\\.php\\?check_time=(.*)\n/",$contents,$matches) ) { return0; }else{ return1; } } define("USERAGENT",$_SERVER['HTTP_USER_AGENT'] ); define("COOKIEJAR", tempnam("/tmp","cookie") ); define("TIMEOUT", 500 ); echochecklogin("zhangying215","xtaj227"); 打开/tmp下面的cookie文件看一下 # Netscape HTTP Cookie File # http://curl.haxx.se/rfc/cookie_spec.html # This file was generated by libcurl! Edit at your own risk. mail.sina.com.cn FALSE / FALSE 0 SINAMAIL-WEBFACE-SESSID 65223c4bd8900284ed463d2a3e1ac182 #HttpOnly_.sina.com.cn TRUE / FALSE 0 SUE es%3D8d96db0820c6c79922ad57d422f575e8%26ev%3Dv0%26es2%3Dcddfb8400dc5ca95902367ddcd7f57dd .sina.com.cn TRUE / FALSE 0 SUP cv%3D1%26bt%3D1286900433%26et%3D1286986833%26lt%3D1%26uid%3D1445632344%26user%3D%25E5%25BC%25A0%25E6%2598%25A02001%26ag%3D2%26name%3Dzhangying20015%2540sina.com%26nick%3D%25E5%25BC%25A0%25E6%2598%25A02001%26sex%3D1%26ps%3D0%26email%3Dzhangying20015%2540sina.com%26dob%3D1982-07-18 #HttpOnly_.sina.com.cn TRUE / FALSE 0 SID BihcallomxMx-QZxzGrOlcSQx%2F0B%2F0cmr.NyQ%2F0B%2FcmGGalmarlmcHrcGlSmrmxmfxal_CBZ%2F_afugCmmGirBYHm0Bc%40fr5ciZiGG5i #HttpOnly_.sina.com.cn TRUE / FALSE 0 SPRIAL bfb4102951fd5892a3fd5b42d442cd26 #HttpOnly_.sina.com.cn TRUE / FALSE 0 SINA_USER %D5%C5%D2001
相关文章推荐
- PHP(CURL)POST/GET数据调用API简单示例
- PHP(CURL)POST数据调用API简单示例
- PHP通过POST数据调用API示例及curl_init()参数介绍
- PHP之文件操作,http请求数据格式,模拟get和post,CURL模拟请求的使用
- php用curl调用接口方法,get和post两种方式
- php 利用curl get post数据
- php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
- php中使用Curl、socket、file_get_contents三种方法POST提交数据
- PHP利用Curl、socket、file_get_contents POST数据
- PHP:CURL分别以GET、POST方式请求HTTPS协议接口api
- PHP:CURL分别以GET、POST方式请求HTTPS协议接口api
- PHP:CURL分别以GET、POST方式请求HTTPS协议接口api
- php中使用Curl、socket、file_get_contents三种方法POST提交数据
- PHP下使用CURL方式POST数据至API接口的代码
- PHP利用Curl、socket、file_get_contents POST数据
- PHP下使用CURL方式POST数据至API接口的方法
- PHP发送POST请求的三种方式 分别使用curl file_get_content fsocket 来实现post提交数据
- php的curl函数模拟post、get数据提交,速度非常慢的处理办法
- php中使用Curl、socket、file_get_contents三种方法POST提交数据
- php通过curl post和get发送json数据实例 curl命令转为php源码