- /**
- * 模拟post进行url请求
- * @param string $url
- * @param string $param
- */
- function request_post($url = '', $param = '') {
- if (empty($url) || empty($param)) {
- return false;
- }
- $postUrl = $url;
- $curlPost = $param;
- $ch = curl_init();//初始化curl
- curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
- curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
- curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
- curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
- $data = curl_exec($ch);//运行curl
- curl_close($ch);
- return $data;
- }
这是方法,下面是具体的调用案例。
- function testAction(){
- $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'] = [email protected];
- $o = "";
- foreach ( $post_data as $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请求
- * @param string $url
- * @param array $post_data
- */
- function request_post($url = '', $post_data = array()) {
- if (empty($url) || empty($post_data)) {
- return false;
- }
- $o = "";
- foreach ( $post_data as $k => $v )
- {
- $o.= "$k=" . urlencode( $v ). "&" ;
- }
- $post_data = substr($o,0,-1);
- $postUrl = $url;
- $curlPost = $post_data;
- $ch = curl_init();//初始化curl
- curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
- curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
- curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
- curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
- $data = curl_exec($ch);//运行curl
- curl_close($ch);
- return $data;
- }
将拼接也封装了起来,这样调用的时候就更简洁了。
- function testAction(){
- $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'] = [email protected];
- //$post_data = array();
- $res = $this->request_post($url, $post_data);
- print_r($res);
- }
php 模拟 post 提交请求,调用接口
来源: http://www.bubuko.com/infodetail-2035973.html