<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## curl請求http接口 ``` <?php namespace app\index\controller; use think\Controller; class Api extends Controller { const KEY = 'aaaaaaaaaaaaaaaaaaaaaaaa'; const APPID = 'bbbbbbbbbbbbbbbbbbbbbb'; const URL = 'https://api.test.com/api/gatdata'; //輸出接口(get請求) public function getData(){ //隨機數 $randomStr = $this -> createNonceStr(); //接口方的appid $appid = self::APPID; //接口名 $api = 'abcd'; //生成簽名 $arr = array(); $arr['nonce'] = "nonce=$randomStr"; $arr['api'] = "api=$api"; $signature = $this -> arithmetic($arr); //請求地址 $url = self::URL; //請求體 $query = [ 'api'=>$api, 'nonce'=>$randomStr, 'sign'=>$signature ]; //get $result = json_decode($this -> httpGet($url,$appid,$query),true); //返回請求數據 return json(['data'=>$result]); } //輸出接口(post) public function postData(){ //隨機數 $randomStr = $this -> createNonceStr(); $appid = self::APPID; $api = 'abcd'; //生成簽名 $arr = array(); $arr['nonce'] = "nonce=$randomStr"; $arr['api'] = "api=$api"; $signature = $this -> arithmetic($arr); //url地址 $url = self::URL; //請求體 $body = [ 'api'=>$api, 'nonce'=>$randomStr, 'sign'=>$signature, ]; //post $result = $this -> httpPost($url,$appid,$body); return json(['data'=>$result]); } //curl模擬get請求。 private function httpGet($url,$appid,$query){ //初始化 $curl = curl_init(); $headers = array(); //微秒時間戳 $time = microtime(); list($msec, $sec) = explode(' ', $time); //毫秒時間戳 $msectime = (int)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000); //頭部字段(自定義) $headers[] = "app_id:$appid"; $headers[] = "psd_entry:$msectime"; //將數組轉化為字符串參數 $query = http_build_query($query); //將請求的參數拼接在url后面 $url = $url.'?'.$query; //需要請求的是哪個地址 curl_setopt($curl,CURLOPT_URL,$url); //表示把請求的數據已文件流的方式輸出到變量中 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//繞過ssl驗證 //參數為0表示不帶頭文件,為1表示帶頭文件 curl_setopt($curl, CURLOPT_HEADER,0); //頭部字段 curl_setopt($curl, CURLOPT_HTTPHEADER,$headers); $result = curl_exec($curl); curl_close($curl); return $result; } //curl模擬post請求。 private static function httpPost($url,$appid,$body){ $curl = curl_init(); $headers = array(); $time = microtime(); list($msec, $sec) = explode(' ', $time); $msectime = (int)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000); //頭部字段(自定義) $headers[] = "app_id:$appid"; $headers[] = "psd_entry:$msectime"; //設置提交的url curl_setopt($curl, CURLOPT_URL, $url); //設置頭文件的信息作為數據流輸出 curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER,$headers); //設置獲取的信息以文件流的形式返回,而不是直接輸出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //設置post方式提交 curl_setopt($curl, CURLOPT_POST, 1); //添加post數據 curl_setopt($curl, CURLOPT_POSTFIELDS, $body); //執行命令 $data = curl_exec($curl); //關閉URL請求 curl_close($curl); //獲得數據并返回 return $data; } //隨機生成字符串 private function createNonceStr($length = 16) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str = ""; for ($i = 0; $i < $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } return $str; } /** * @param $timeStamp 時間戳 * @param $randomStr ASCII可見字符串 * @return string 返回簽名 */ private function arithmetic($arr){ $key = self::KEY; //按照首字母大小寫順序排序 sort($arr,SORT_STRING); //拼接成字符串 $str = implode('&',$arr); //拼接key $stringSignTemp = $str.'&key='.$key; //生成簽名 $sign=strtoupper(MD5($stringSignTemp)); return $sign; } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看