PHP扩展 Guzzlehttp一次使用体验
时间:2023-3-2 09:52 作者:wen 分类: PHP
当时发送请求后,调用
$response->getBody()
一直返回空,后来改成用curl请求,发现接口没有问题,能正常返回,改用guzzle之后就不行了,后来发现$response->getBody()
返回一个对象,对象经过json_encode函数之后会变成{}空字符串导致出现问题, 改用$response->getBody()->getContents()
,就解决问题了
require_once 'vendor/autoload.php';
$client = new GuzzleHttp\Client();
$url = "xxx";
$response = $client->get($url);
if ($response->getStatusCode() == 200) {
$res = $response->getBody()->getContents();
myJson(0, 'OK', json_decode($res, true));
} else {
myJson(1, 'ERROR');
}
/**
* 返回JSON数据
*/
function myJson($code, $msg, $data = [])
{
header("content-type:application/json");
echo json_encode(['code' => $code, 'msg' => $msg, 'data' => $data], JSON_UNESCAPED_UNICODE);
exit;
}
$client = new \GuzzleHttp\Client();
$res = $client->post('xxx',[
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded',
],
'form_params' => [
'out_trade_no' => "$no"
]
]);
return json_decode($res->getBody()->getContents(), true);