bourse stock
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.5 KiB

<?php
namespace app\utility;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use think\facade\Log;
class RequestChatServer
{
public function ReqChatServer(string $url, array $data, string $method = 'POST'): array
{
try {
if (!in_array($method, ['POST','PUT'])) {
return $this->toData('400', '请求方法不在支持列表中');
}
Log::info("请求URL==".$url." 请求Param==".json_encode($data));
$resBody = [];
$client = new Client();
if ($method == 'PUT') {
$response = $client->put($url, [
'json' => $data,
]);
} else {
$response = $client->post($url, [
'json' => $data,
]);
}
$statusCode = $response->getStatusCode();
Log::error("请求聊天服返回:code==".$statusCode." body==". $response->getBody());
if ($statusCode == 200) {
$resBody = json_decode($response->getBody(), true); // 转换为数组
}
return $resBody;
} catch (GuzzleException $e) {
Log::error("请求聊天服异常 - guzzle: " . $e->getMessage());
return $this->toData('500', $e->getMessage());
} catch (\Exception $exception) {
Log::error("请求聊天服异常 - exc:" . $exception->getMessage());
return $this->toData('500', $exception->getMessage());
}
}
}