laravel5.6 封装http5种请求

第一步:
composer require guzzlehttp/guzzle

use GuzzleHttp\Client;

代码:

class Http
{
    public static function httpRequest($resource)
    {
        $codeFlag = false;
        $repeatCnt = 1;
        do{
            $result = $resource;
            $result = json_decode(json_encode($result),true);

            $codeFlag = isset($result['code'])?true:false;
            if($codeFlag)
                $repeatCnt++;
        }while($codeFlag && $repeatCnt < TbkEnum::DEFAULT_HTTP_REPEAT);

        return $result;
    }
	
    public static function getRequest(string $url, array $parameters = [])
    {
        try {
            $response = self::Client()->request('GET', $url, [
                'query' => $parameters
            ]);
            $result = json_decode($response->getBody()->getContents(), true);
        } catch (\GuzzleHttp\Exception\BadResponseException $e) {
            Log::error('get请求出错:' . $e->getMessage());
            $result = ['code' => $e->getResponse()->getStatusCode()];
        }

        return $result;
    }

    public static function postRequest(string $url, array $parameters = [])
    {
        try {
            $response = self::Client()->request('POST', $url, [
                'json' => $parameters
            ]);
            $result = json_decode($response->getBody()->getContents(), true);
        } catch (\GuzzleHttp\Exception\BadResponseException $e) {
            Log::error('post请求出错:' . $e->getMessage());
            $result = ['code' => $e->getResponse()->getStatusCode()];
        }

        return $result;
    }
	

    public static function getRequestWithHeader(string $url, array $header = [], array $parameters = [])
    {
        try {
            $response = self::Client()->request('GET', $url, [
                'headers' => $header,
                'query'    => $parameters
            ]);
            $result = json_decode($response->getBody()->getContents(), true);
        } catch (\GuzzleHttp\Exception\BadResponseException $e) {
            Log::error('post请求出错:' . $e->getMessage());
            $result = ['code' => $e->getResponse()->getStatusCode()];
        }

        return $result;
    }

    public static function postRequestWithHeader(string $url, array $header = [], array $parameters = [])
    {
        try {
            $response = self::Client()->request('POST', $url, [
                'headers' => $header,
                'json'    => $parameters
            ]);
            $result = json_decode($response->getBody()->getContents(), true);
        } catch (\GuzzleHttp\Exception\BadResponseException $e) {
            Log::error('post请求出错:' . $e->getMessage());
            $result = ['code' => $e->getResponse()->getStatusCode()];
        }

        return $result;
    }

    /**
     * @return Client
     */
    private static function Client()
    {
        return app(Client::class);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太阳上的雨天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值