【PHP】发送HTTP请求时参数快速组装

2 篇文章 0 订阅

1.POST、GET参数组装


  •  利用compact、http_build_query函数
        // post的数组体
        $a = 1;
        $b = 2;
        $c = $a + $b;
        $array = compact('a','b','c'); // 组合请求参数
        print_r($array);
        
        // get的url组装
        $paramsStr = http_build_query($array);
        print_r($paramsStr);
  • 打印结果

2.一个请求示例


使用guzzle

<?php

namespace app\common\library;

use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;

class GuzzleHttpRequest
{
    public static function httpRequest($url, $dataStr = "", $isPost = 0, $headers = [])
    {
        try {
            $client = new Client();

            $options = [
                'headers' => [
                    'User-Agent' => 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',
                ],
                'connect_timeout' => 30,
                'timeout' => 30,
            ];

            // 添加自定义请求头
            if (!empty($headers)) {
                $options['headers'] = array_merge($options['headers'], $headers);
            }

            // 跳过证书检查
            if (strtolower(mb_substr($url, 0, 8, "utf-8")) == "https://") {
                $options['verify'] = false; // 跳过证书检查
            }

            if ($isPost) {
                $options['form_params'] = $dataStr;
                $response = $client->post($url, $options);
            } else {
                // GET 请求
                $options['query'] = $dataStr;
                $response = $client->get($url, $options);
            }
            return $response->getBody()->getContents();
        } catch (GuzzleException $e) {
            error_log($e->getMessage().'URL: '. $url.'Data: '. json_encode($dataStr));
            // 处理异常
            throw $e;
        }
    }
}

// post
$a = 1;
$b = 2;
$c = $a + $b;
$params = compact('a','b','c'); // 组合请求参数
$result = GuzzleHttpRequest::httpRequest(self::API_URL['idcard_query'], $params, 1);

// get
$paramsStr = http_build_query($params);
$result = GuzzleHttpRequest::httpRequest(self::API_URL['idcard_query'], $params);

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zzoood

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

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

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

打赏作者

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

抵扣说明:

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

余额充值