php模拟post提交请求调用接口示例解析

吾爱主题 阅读:122 2021-10-21 14:08:00 评论:0

php模拟post提交请求,调用接口

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 /**   * 模拟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 ;   }

这是方法,

下面是具体的调用案例。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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' ] = 'zsjs123@126.com' ;   $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是拼接出来的。

也可以改造成下面的方式。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 /**   * 模拟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 ;   }

将拼接也封装了起来,这样调用的时候就更简洁了。

?
1 2 3 4 5 6 7 8 9 10 11 12 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' ] = 'zsjs124@126.com' ;   //$post_data = array();   $res = $this ->request_post( $url , $post_data );   print_r( $res );     }

到此这篇关于php模拟post提交请求调用接口示例解析的文章就介绍到这了,更多相关php模拟post提交请求调用接口内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/jiqing9006/p/3949190.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容