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);