guzzlehttp请求封装

全屏阅读
  • 基本信息
/**
     * 发送请求
     * https://guzzle-cn.readthedocs.io/zh_CN/latest/quickstart.html
     *
     * @param string $url
     * @param array $params
     * @param string $method
     * @param array $configs
     * @param string $contentType
     * @return array
     */
    public static function request(string $url, array $params = [], string $method = 'POST', array $configs = [], string $contentType='form_params')
    {
        $configs['timeout'] = array_get($configs, 'timeout', 5);
        $client = new Client($configs);
        $params = strtoupper($method) == 'GET' ? ['query' => $params] : [$contentType => $params];
        Log::info("httpRequest send", ['url' => $url, 'params' => $params, 'method' => $method, 'configs' => $configs]);

        try {
            $request = $client->request($method, $url, $params);
        } catch (RequestException $e) {
            $errorCode = $e->getCode();
            $errorMessage = $e->getMessage();

            Log::info("httpRequest response error:", ['url' => $url, 'params' => $params, 'method' => $method,
                'configs' => $configs, 'errorCode' => $errorCode, 'errorMessage' => $errorMessage]);

            return [
                'success' => false,
                'errorCode' => $errorCode,
                'errorMessage' => $errorMessage,
            ];
        }

        $httpCode = $request->getStatusCode();
        $return   = $request->getBody()->getContents();
        $response = json_decode($return, true);
        $success  = $httpCode == 200 ? 'success' : 'error';

        Log::info("httpRequest response $success:", ['url' => $url, 'params' => $params, 'method' => $method,
            'configs' => $configs, 'httpCode' => $httpCode, 'response' => $response]);

        if($httpCode != 200) {
            return [
                'success' => false,
                'errorCode' => $httpCode,
                'errorMessage' => '',
            ];
        }

        return [
            'success' => true,
            'data' => $response
        ];
    }

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!