笔记:Curl 简单 post + get

日常开发中,用习惯了 guzzlehttp/guzzle 包,不得不说是真的好用,推荐大家使用。
命令:composer require guzzlehttp/guzzle 链接
然而最近在项目中却惊讶的发现,guzzle包是3.*版本,用起来不是很友好。只能自己简单的写一下post,get了。
附代码:

<?php


namespace App\Service;


class CurlService
{

    /**
     * Post json 数据
     *
     * @param $url      |  url地址
     * @param $postData |  array
     * @param $timeout  |  int
     * @return mixed
     */
    public static function postJson($url, $postData, $timeout = 10) {
        $jsonStr = json_encode($postData, JSON_UNESCAPED_UNICODE);
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $headers = [
            'Content-Type: application/json',
            'Content-Length: ' . strlen($jsonStr),
        ];
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        $data = curl_exec($ch);
        curl_close($ch);

        return json_decode($data, true);
    }

    /**
     * Get Url 数据
     * @param $url
     * @return bool|string
     */
    public static function get($url)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $output = curl_exec($ch);
        curl_close($ch);

        return $output;
    }

}

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2
use Illuminate\Support\Facades\Http;
$url = "http://xxx.test/api/getTestPlay";
//      $response = Http::get($url);
$response = Http::get($url,[
  'sex'=>'男'
]);
$data = $response->json();

这个更简洁,不需要自己写
具体可以参考这个:Laravel 7 将内置 Zttp 类库

5天前 评论

@她来听我的演唱会 laravel Request自带实现的Request::create也很好用,只是项目特殊自己顺手写了写,就当复习一下基础了

2天前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!