php模拟post提交请求调用接口示例解析
吾爱主题
阅读:127
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.作者投稿可能会经我们编辑修改或补充。