ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 模拟GET请求 ~~~ $url='http://www.baidu.com'; //网站 $ch=curl_init(); //初始化curl会话返回curl句柄(资源) curl_setopt($ch,CURLOPT_URL,$url); //设置获取地址变量 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //以字符串形式返回 curl_exec($ch); //接收get值回来 curl_close($ch); //关闭curl连接 //以上为GET请求 ~~~ ## 模拟GET请求实战代码案例 ~~~ function er($url){ $u='https://api.uomg.com/api/qrcode?url='.$url; //网站 $ch=curl_init(); //初始化curl会话返回curl句柄(资源) curl_setopt($ch,CURLOPT_URL,$u); //设置获取地址变量 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //以字符串形式返回 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //跳过https炎症 $ma=curl_exec($ch); curl_close($ch); //关闭句柄 return base64_encode($ma); } ~~~ ![](https://img.kancloud.cn/34/23/3423c7bf47492faae9b15fd723a358f4_1379x668.png) # 模拟POST请求 ~~~ $url='http://apis.juhe.cn/qrcode/api'; //$data=['user_name'=>'liudehua']; 可以用数组 $data='key=b78526ba52010c94e266211c9c9916d5&text=http://www.baidu.com&el=&bgcolor=ffffff&fgcolor=000000&logo=&w=30&m=10&lw=10&type=1'; //可以用urlencoded方式 $ch=curl_init(); //初始化curl会话返回curl句柄(资源) curl_setopt($ch,CURLOPT_URL,$url); //设置获取地址变量 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //以字符串形式返回 curl_setopt($ch,CURLOPT_POST,true); //POST请求方法 curl_setopt($ch,CURLOPT_POSTFIELDS,$data); //发送一个数组 $rec=curl_exec($ch); //接收POST回来 curl_close($ch); //关闭curl连接 echo $rec; ~~~ ## 第二步骤用法设置CURL的传输项: 官网地址: https://www.php.net/manual/zh/function.curl-setopt.php ``` CURLOPT_RETURNTRANSFER TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出。默认直接输出 CURLOPT_POST TRUE 时会发送POST请求,类型为:application/x-www-form-urlencoded, 是HTML表单提交时最常见的一种。 CURLOPT_POSTFIELDS 这个参数可以是urlencoded后的字符串,类似'para1=val1&para2=val2$.....',也可以使用一个以字段名为建值,字段数位值的数组 CURLOPT_FOLLOWLOCATION TRUE 时将会根据服务器返回HTTP头中的“Location:”重定向 ``` ## ## 有头部文件的时候的请求: ~~~ public function oppo() { $timestamp=time(); //时间戳 $ouId='D91FF8E2ACA4435FBFC8401EED516A81bca035309b94ff5964d35ac284052076'; //从前端传递过来 设备识别码 $ouId =openssl_encrypt($ouId, 'AES-128-ECB',base64_decode('XGAXicVG5GMBsx5bueOe4w=='),0,''); $josnarry = [ "ouId" => $ouId, "appType" => 3, "dataType" => 16, "ascribeType" => 1, "channel" => 1, "type" => 2, "pkg" => "com.hckz.dxkj", "timestamp" => $timestamp ]; $postData=json_encode($josnarry); //转换为JSON字符串 $salt='e0u6fnlag06lc3pl'; //salt数据 $signature= md5( $postData.$timestamp.$salt); //json MD5后数据 dump($signature); //以下为发送POST请求 $url='https://api.ads.heytapmobi.com/api/uploadActiveData'; //请求头部 $headers = array('signature:'.$signature,'timestamp:'.$timestamp,'Content-Type:application/json',); //头部数组的样式(这里一定要是这个格式) $data=[ 'ouId'=> $josnarry['ouId'], 'appType'=>$josnarry['appType'], 'dataType'=>$josnarry['dataType'], 'ascribeType'=>$josnarry['ascribeType'], 'channel'=>$josnarry['channel'], 'type'=>$josnarry['type'], 'pkg'=>$josnarry['pkg'], 'timestamp'=>$josnarry['timestamp'] ]; $data=json_encode($data); //如果头部为JSON那么这里的数据必须是json格式 $ch=curl_init(); //初始化curl会话返回curl句柄(资源) curl_setopt($ch,CURLOPT_URL,$url); //设置获取地址变量 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //以字符串形式返回 curl_setopt($ch,CURLOPT_POST,true); //POST请求方法 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);//设置请求头部 curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data ); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //跳过https验证 $rec=curl_exec($ch); //接收POST回来 curl_close($ch); //关闭curl连接 dump($rec); } ~~~ # 详细可以看PHP中文网的问题解决: https://www.php.cn/php-ask-456762.html