php模拟post提交请求,调用接口
/***模拟post进行url请求*@paramstring$url*@paramstring$param*/functionrequest_post($url='',$param=''){if(empty($url)||empty($param)){returnfalse;}$postUrl=$url;$curlPost=$param;$ch=curl_init();//初始化curlcurl_setopt($ch,CURLOPT_URL,$postUrl);//抓取指定网页curl_setopt($ch,CURLOPT_HEADER,0);//设置headercurl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//要求结果为字符串且输出到屏幕上curl_setopt($ch,CURLOPT_POST,1);//post提交方式curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);$data=curl_exec($ch);//运行curlcurl_close($ch);return$data;}
这是方法,下面是具体的调用案例。
functiontestAction(){$url='http://mobile.jschina.com.cn/jschina/register.php';$post_data['appid']='10';$post_data['appkey']='cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ';$post_data['member_name']='zsjs123';$post_data['password']='123456';$post_data['email']='zsjs123@126.com';$o="";foreach($post_dataas$k=>$v){$o.="$k=".urlencode($v)."&";}$post_data=substr($o,0,-1);$res=$this->request_post($url,$post_data);print_r($res);}
这样就提交请求,并且获取请求结果了。一般返回的结果是json格式的。
这里的post是拼接出来的。
也可以改造成下面的方式。
/***模拟post进行url请求*@paramstring$url*@paramarray$post_data*/functionrequest_post($url='',$post_data=array()){if(empty($url)||empty($post_data)){returnfalse;}$o="";foreach($post_dataas$k=>$v){$o.="$k=".urlencode($v)."&";}$post_data=substr($o,0,-1);$postUrl=$url;$curlPost=$post_data;$ch=curl_init();//初始化curlcurl_setopt($ch,CURLOPT_URL,$postUrl);//抓取指定网页curl_setopt($ch,CURLOPT_HEADER,0);//设置headercurl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//要求结果为字符串且输出到屏幕上curl_setopt($ch,CURLOPT_POST,1);//post提交方式curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);$data=curl_exec($ch);//运行curlcurl_close($ch);return$data;}
将拼接也封装了起来,这样调用的时候就更简洁了。
functiontestAction(){$url='http://mobile.jschina.com.cn/jschina/register.php';$post_data['appid']='10';$post_data['appkey']='cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ';$post_data['member_name']='zsjs124';$post_data['password']='123456';$post_data['email']='zsjs124@126.com';//$post_data=array();$res=$this->request_post($url,$post_data);print_r($res);}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。