api 测试auth问题的php脚本

<?php/**hostdev http://192.168.163.132|web.hudong.cnmaster http://hudong.qianfanyun.comauthurl /session/createpassword  xxxxusername xxxxxreturn /\S+/httpget /test */class Gapi{    public $host = '';    public $url = '';    public $type = '';    public $header = [];    public $params = [];    public $data = [];    public function __construct()    {        if (isset($_GET['c'])) {            $config = file_get_contents("./{$_GET['c']}");        } else {            $config = file_get_contents("./config");        }        preg_match_all('/\S+(\r|\n[\S|\t]+.*)+/', $config, $contentOneArray, PREG_PATTERN_ORDER);        foreach ($contentOneArray[0] as $key => $value) {            $this->data = array_merge($this->data, $this->buildOne($value));        }    }    public function buildOne($content)    {        $arr = [];        preg_match_all('/\S+/', $content, $res, PREG_PATTERN_ORDER);        $key       = $res[0][0];        $arr[$key] = [];        for ($i = 1; $i < count($res[0]); $i++) {            if ($i % 2 == 1) {                $arr[$key][$res[0][$i]] = "";            } else {                $arr[$key][$res[0][$i - 1]] = $res[0][$i];            }        }        return $arr;    }    public function run()    {        $this->buildHost();        $this->buildAuth();        $this->buildUrl();        $res = $this->curl($this->type);        if (preg_match('/^{(\w|\W)+}$/', $res)) {            echo $this->decodeUnicode(json_encode(json_decode($res), JSON_PRETTY_PRINT));        } else {            echo $res;        }    }    public function decodeUnicode($str)    {        return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', create_function('$matches', 'return iconv("UCS-2BE","UTF-8",pack("H*", $matches[1]));'), $str);    }    public function buildAuth()    {        $auth      = $this->data['auth'];        $this->url = $this->host . $auth['url'];        $start     = isset($auth['start']) ? $auth['start'] : '';        $return    = $auth['return'];        unset($auth['url']);        unset($auth['return']);        $this->params = $auth;        $postContent  = $this->curl('post');        preg_match($return, $postContent, $res);        if (!isset($res[0])) {            throw new \Exception("auth error:\n" . $postContent . "\n" . json_encode($this), 4324);        }        if ($start == "Bearer") {            $start .= ' ';        }        array_push($this->header, "Authorization: " . $start . $res[0]);    }    public function buildHost()    {        $key = "dev";        if (            isset($_GET["t"])            &&            $_GET["t"] == 'm'        ) {            $key = 'master';        }        $dev        = explode('|', $this->data['host'][$key]);        $this->host = $dev[0];        if (isset($dev[1])) {            array_push($this->header, "host:{$dev[1]}");        }    }    public function buildUrl()    {        $http = $this->data['http'];        foreach ($http as $key => $value) {            $this->type = $key;            break;        }        $this->url = $this->host . $http[$this->type];        if ($this->type != "get") {            $this->buildParams();        }    }    public function buildParams()    {        $http = $this->data['http'];        unset($http[$this->type]);        $this->params = $http;    }    public function curl($type)    {        $ch = curl_init();        curl_setopt($ch, CURLOPT_URL, $this->url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);        curl_setopt($ch, CURLOPT_HTTPHEADER, $this->header);        switch ($type) {            case 'post':                curl_setopt($ch, CURLOPT_POST, 1);                curl_setopt($ch, CURLOPT_POSTFIELDS, $this->params);                break;            case 'put':                curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");                curl_setopt($ch, CURLOPT_POSTFIELDS, $this->params);                break;            default:                break;        }        $file_contents = curl_exec($ch);        curl_close($ch);        return $file_contents;    }}$gapi = new Gapi();$gapi->run();
计算机