Browse Source

updated GuzzleHttp\Client To Laravel Http Facades

兔姬桑 4 years ago
parent
commit
2ab08e3717

+ 14 - 15
app/Components/IP.php

@@ -5,7 +5,7 @@ namespace App\Components;
 use Exception;
 use GeoIp2\Database\Reader;
 use GeoIp2\Exception\AddressNotFoundException;
-use GuzzleHttp\Client;
+use Http;
 use IP2Location\Database;
 use Ip2Region;
 use ipip\db\City;
@@ -35,14 +35,13 @@ class IP
     // 通过api.ip.sb查询IP地址的详细信息
     public static function IPSB($ip)
     {
-        $request = (new Client(['timeout' => 15]))->get('https://api.ip.sb/geoip/'.$ip);
-        $message = json_decode($request->getBody(), true);
+        $response = Http::timeout(15)->get('https://api.ip.sb/geoip/'.$ip);
 
-        if ($request->getStatusCode() === 200) {
-            return $message;
+        if ($response->ok()) {
+            return $response->json();
         }
 
-        Log::error('解析IPv6异常:'.$ip.PHP_EOL.var_export($request, true));
+        Log::error('解析IPv6异常:'.$ip);
 
         return false;
     }
@@ -107,10 +106,10 @@ class IP
     public static function TaoBao(string $ip)
     {
         // 依据 http://ip.taobao.com/instructions 开发
-        $request = (new Client(['timeout' => 15]))->get('http://ip.taobao.com/outGetIpInfo?ip='.$ip.'&accessKey=alibaba-inc');
-        $message = json_decode($request->getBody(), true);
+        $response = Http::timeout(15)->get('http://ip.taobao.com/outGetIpInfo?ip='.$ip.'&accessKey=alibaba-inc');
 
-        if ($request->getStatusCode() === 200) {
+        if ($response->ok()) {
+            $message = $response->json();
             if ($message['code'] === 0) {
                 return [
                     'country'  => $message['data']['country'] === "XX" ? '' : $message['data']['country'],
@@ -119,9 +118,9 @@ class IP
                 ];
             }
 
-            Log::error('【淘宝IP库】返回错误信息:'.$ip.PHP_EOL.var_export($message['msg'], true));
+            Log::error('【淘宝IP库】返回错误信息:'.$ip.PHP_EOL.$message['msg']);
         } else {
-            Log::error('【淘宝IP库】解析异常:'.$ip.PHP_EOL.var_export($request, true));
+            Log::error('【淘宝IP库】解析异常:'.$ip);
         }
 
         return false;
@@ -136,10 +135,10 @@ class IP
             return false;
         }
         // 依据 http://lbsyun.baidu.com/index.php?title=webapi/ip-api 开发
-        $request = (new Client(['timeout' => 15]))->get('https://api.map.baidu.com/location/ip?ak='.env('BAIDU_APP_AK').'&'.$ip.'&coor=bd09ll');
-        $message = json_decode($request->getBody(), true);
+        $response = Http::timeout(15)->get('https://api.map.baidu.com/location/ip?ak='.env('BAIDU_APP_AK').'&'.$ip.'&coor=bd09ll');
 
-        if ($request->getStatusCode() === 200) {
+        if ($response->ok()) {
+            $message = $response->json();
             if ($message['status'] === 0) {
                 return [
                     'country'  => $message['content']['address_detail']['country'],
@@ -150,7 +149,7 @@ class IP
 
             Log::error('【百度IP库】返回错误信息:'.$ip.PHP_EOL.var_export($message['message'], true));
         } else {
-            Log::error('【百度IP库】解析异常:'.$ip.PHP_EOL.var_export($request, true));
+            Log::error('【百度IP库】解析异常:'.$ip);
         }
 
         return false;

+ 12 - 12
app/Components/Namesilo.php

@@ -2,7 +2,7 @@
 
 namespace App\Components;
 
-use GuzzleHttp\Client;
+use Http;
 use Log;
 use LSS\XML2Array;
 
@@ -28,24 +28,24 @@ class Namesilo
 
         $content = '请求操作:['.$operation.'] --- 请求数据:['.http_build_query($query).']';
 
-        $request = (new Client(['timeout' => 15]))->get(self::$host.$operation.'?'.http_build_query($query));
-        $result = XML2Array::createArray(json_decode($request->getBody(), true));
-
-        if ($request->getStatusCode() !== 200) {
-            Log::error('请求失败:'.var_export($request, true));
+        $response = Http::timeout(15)->get(self::$host.$operation.'?'.http_build_query($query));
+        if ($response->failed()) {
+            Log::error('[Namesilo]请求失败:'.var_export($response, true));
             Helpers::addNotificationLog('[Namesilo API] - ['.$operation.']', $content, 1, sysConfig('webmaster_email'),
-                0, var_export($request, true));
+                0, var_export($response, true));
 
             return false;
         }
 
+        $result = XML2Array::createArray($response->json());
+
         // 出错
-        if (empty($result['namesilo']) || $result['namesilo']['reply']['code'] != 300 || $result['namesilo']['reply']['detail'] !== 'success') {
-            Helpers::addNotificationLog('[Namesilo API] - ['.$operation.']', $content, 1, sysConfig('webmaster_email'),
-                0, $result['namesilo']['reply']['detail']);
+        if (empty($result['namesilo']) || $result['namesilo']['reply']['code'] !== 300 || $result['namesilo']['reply']['detail'] !== 'success') {
+            Helpers::addNotificationLog('[Namesilo API] - ['.$operation.']', $content, 1,
+                sysConfig('webmaster_email'), 0, $result['namesilo']['reply']['detail']);
         } else {
-            Helpers::addNotificationLog('[Namesilo API] - ['.$operation.']', $content, 1, sysConfig('webmaster_email'),
-                1, $result['namesilo']['reply']['detail']);
+            Helpers::addNotificationLog('[Namesilo API] - ['.$operation.']', $content, 1,
+                sysConfig('webmaster_email'), 1, $result['namesilo']['reply']['detail']);
         }
 
         return $result['namesilo']['reply'];

+ 14 - 14
app/Components/NetworkDetection.php

@@ -2,7 +2,7 @@
 
 namespace App\Components;
 
-use GuzzleHttp\Client;
+use Http;
 use Log;
 
 class NetworkDetection
@@ -21,37 +21,37 @@ class NetworkDetection
         $url = 'https://api.50network.com/china-firewall/check/ip/'.($type ? 'icmp/' : ($port ? 'tcp_port/' : 'tcp_ack/')).$ip.($port ? '/'.$port : '');
 
         $checkName = $type ? 'ICMP' : 'TCP';
-        $request = (new Client(['timeout' => 15]))->get($url);
-        $result = json_decode($request->getBody(), true);
+        $response = Http::timeout(15)->get($url);
 
-        if ($request->getStatusCode() === 200) {
-            if (!$result) {
+        if ($response->ok()) {
+            $message = $response->json();
+            if (!$message) {
                 Log::warning("【".$checkName."阻断检测】检测".$ip."时,接口返回异常访问链接:".$url);
 
                 return false;
             }
 
-            if (!$result['success']) {
-                if ($result['error'] === "execute timeout (3s)") {
+            if (!$message['success']) {
+                if ($message['error'] === "execute timeout (3s)") {
                     sleep(10);
 
                     return self::networkCheck($ip, $type, $port);
                 }
 
-                Log::warning("【".$checkName."阻断检测】检测".$ip.$port."时,返回".var_export($result, true));
+                Log::warning("【".$checkName."阻断检测】检测".$ip.$port."时,返回".var_export($message, true));
 
                 return false;
             }
 
-            if ($result['firewall-enable'] && $result['firewall-disable']) {
+            if ($message['firewall-enable'] && $message['firewall-disable']) {
                 return "通讯正常"; // 正常
             }
 
-            if ($result['firewall-enable'] && !$result['firewall-disable']) {
+            if ($message['firewall-enable'] && !$message['firewall-disable']) {
                 return "海外阻断"; // 国外访问异常
             }
 
-            if (!$result['firewall-enable'] && $result['firewall-disable']) {
+            if (!$message['firewall-enable'] && $message['firewall-disable']) {
                 return "国内阻断"; // 被墙
             }
 
@@ -71,11 +71,11 @@ class NetworkDetection
     public static function ping(string $ip)
     {
         $url = 'https://api.oioweb.cn/api/hostping.php?host='.$ip; // https://api.iiwl.cc/api/ping.php?host=
-        $request = (new Client(['timeout' => 15]))->get($url);
-        $message = json_decode($request->getBody(), true);
+        $response = Http::timeout(15)->get($url);
 
         // 发送成功
-        if ($request->getStatusCode() === 200) {
+        if ($response->ok()) {
+            $message = $response->json();
             if ($message && $message['code']) {
                 return $message['data'];
             }

+ 10 - 9
app/Components/PushNotification.php

@@ -3,7 +3,7 @@
 
 namespace App\Components;
 
-use GuzzleHttp\Client;
+use Http;
 use Log;
 
 class PushNotification
@@ -31,10 +31,11 @@ class PushNotification
     private static function ServerChan(string $title, string $content)
     {
         // TODO:一天仅可发送不超过500条
-        $request = (new Client(['timeout' => 15]))->get('https://sc.ftqq.com/'.sysConfig('server_chan_key').'.send?text='.$title.'&desp='.urlencode($content));
-        $message = json_decode($request->getBody(), true);
+        $response = Http::timeout(15)->get('https://sc.ftqq.com/'.sysConfig('server_chan_key').'.send?text='.$title.'&desp='.urlencode($content));
+
         // 发送成功
-        if ($request->getStatusCode() === 200) {
+        if ($response->ok()) {
+            $message = $response->json();
             if (!$message['errno']) {
                 Helpers::addNotificationLog($title, $content, 2);
 
@@ -46,7 +47,7 @@ class PushNotification
             return false;
         }
         // 发送错误
-        Log::error('ServerChan消息推送异常:'.var_export($request, true));
+        Log::error('ServerChan消息推送异常:'.var_export($response, true));
 
         return false;
     }
@@ -61,10 +62,10 @@ class PushNotification
      */
     private static function Bark(string $title, string $content)
     {
-        $request = (new Client(['timeout' => 15]))->get('https://api.day.app/'.sysConfig('bark_key').'/'.$title.'/'.$content);
-        $message = json_decode($request->getBody(), true);
+        $response = Http::timeout(15)->get('https://api.day.app/'.sysConfig('bark_key').'/'.$title.'/'.$content);
 
-        if ($request->getStatusCode() === 200) {
+        if ($response->ok()) {
+            $message = $response->json();
             // 发送成功
             if ($message['code'] === 200) {
                 Helpers::addNotificationLog($title, $content, 3);
@@ -77,7 +78,7 @@ class PushNotification
             return false;
         }
         // 发送错误
-        Log::error('Bark消息推送异常:'.var_export($request, true));
+        Log::error('Bark消息推送异常:'.var_export($response, true));
 
         return false;
     }

+ 11 - 11
app/Components/QQInfo.php

@@ -2,7 +2,7 @@
 
 namespace App\Components;
 
-use GuzzleHttp\Client;
+use Http;
 
 class QQInfo
 {
@@ -10,11 +10,11 @@ class QQInfo
     {
         //向接口发起请求获取json数据
         $url = 'https://r.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?get_nick=1&uins='.$qq;
-        $request = (new Client(['timeout' => 15]))->get($url);
-        $message = mb_convert_encoding($request->getBody(), "UTF-8", "GBK");
+        $response = Http::timeout(15)->retry(2)->get($url);
+        $message = mb_convert_encoding($response->body(), "UTF-8", "GBK");
 
         // 接口是否异常
-        if ($request->getStatusCode() === 200 && str_contains($message, $qq)) {
+        if ($response->ok() && str_contains($message, $qq)) {
             //对获取的json数据进行截取并解析成数组
             $message = json_decode(substr($message, 17, -1), true);
 
@@ -27,12 +27,12 @@ class QQInfo
     public static function getName2(string $qq): string
     {
         //向接口发起请求获取json数据
-        $url = 'https://api.toubiec.cn/qq?qq='.$qq.'&size=100';
-        $request = (new Client(['timeout' => 15]))->get($url);
-        $message = json_decode($request->getBody(), true);
+        $url = 'https://api.qqder.com/qqxt/api.php?qq='.$qq;
+        $response = Http::timeout(15)->get($url);
+        $message = $response->json();
 
         // 接口是否异常
-        if ($message && $message['code'] == 200 && $request->getStatusCode() === 200) {
+        if ($message && $message['code'] === 1 && $response->ok()) {
             return $message['name'];
         }
 
@@ -43,11 +43,11 @@ class QQInfo
     {
         //向接口发起请求获取json数据
         $url = 'https://api.unipay.qq.com/v1/r/1450000186/wechat_query?cmd=1&pf=mds_storeopen_qb-__mds_qqclub_tab_-html5&pfkey=pfkey&from_h5=1&from_https=1&openid=openid&openkey=openkey&session_id=hy_gameid&session_type=st_dummy&qq_appid=&offerId=1450000186&sandbox=&provide_uin='.$qq;
-        $request = (new Client(['timeout' => 15]))->get($url);
-        $message = json_decode($request->getBody(), true);
+        $response = Http::timeout(15)->get($url);
+        $message = $response->json();
 
         // 接口是否异常
-        if ($message && $message['ret'] == 0 && $request->getStatusCode() === 200) {
+        if ($message && $message['ret'] === 0 && $response->ok()) {
             return urldecode($message['nick']);
         }
 

+ 9 - 11
app/Http/Controllers/Admin/MarketingController.php

@@ -6,7 +6,7 @@ use App\Http\Controllers\Controller;
 use App\Models\Marketing;
 use DB;
 use Exception;
-use GuzzleHttp\Client;
+use Http;
 use Illuminate\Http\JsonResponse;
 use Illuminate\Http\Request;
 use Log;
@@ -67,19 +67,17 @@ class MarketingController extends Controller
         try {
             DB::beginTransaction();
 
-            $response = (new Client())->get('https://pushbear.ftqq.com/sub', [
-                'query' => [
-                    'sendkey' => sysConfig('push_bear_send_key'),
-                    'text'    => $title,
-                    'desp'    => $content,
-                ],
+            $response = Http::timeout(15)->get('https://pushbear.ftqq.com/sub', [
+                'sendkey' => sysConfig('push_bear_send_key'),
+                'text'    => $title,
+                'desp'    => $content,
             ]);
 
-            $result = json_decode($response->getBody(), true);
-            if ($result->code) { // 失败
-                $this->addMarketing(2, $title, $content, -1, $result->message);
+            $message = $response->json();
+            if (!$message || !$message['code'] === 0 || $response->failed()) { // 失败
+                $this->addMarketing(2, $title, $content, -1, $message['message']);
 
-                throw new RuntimeException($result->message);
+                throw new RuntimeException($message['message']);
             }
 
             $this->addMarketing(2, $title, $content, 1);

+ 10 - 12
app/Http/Controllers/Gateway/BitpayX.php

@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Gateway;
 
 use App\Models\Payment;
 use Auth;
-use GuzzleHttp\Client;
+use Http;
 use Illuminate\Http\JsonResponse;
 use Log;
 use Response;
@@ -53,25 +53,23 @@ class BitpayX extends AbstractPayment
 
     private function sendRequest($data, $type = 'createOrder')
     {
-        $client = new Client([
-            'base_uri' => 'https://api.mugglepay.com/v1/',
-            'timeout'  => 15,
-            'headers'  => [
+        $client = Http::baseUrl('https://api.mugglepay.com/v1/')
+            ->timeout(15)
+            ->withHeaders([
                 'token'        => sysConfig('bitpay_secret'),
                 'content-type' => 'application/json',
-            ],
-        ]);
+            ]);
 
         if ($type === 'query') {
-            $request = $client->get('orders/merchant_order_id/status?id='.$data['merchant_order_id']);
+            $response = $client->get('orders/merchant_order_id/status?id='.$data['merchant_order_id']);
         } else {// Create Order
-            $request = $client->post('orders', ['body' => json_encode($data)]);
+            $response = $client->post('orders', ['body' => json_encode($data)]);
         }
-        if ($request->getStatusCode() !== 200) {
-            Log::error('BitPayX请求支付错误:'.var_export($request, true));
+        if ($response->failed()) {
+            Log::error('BitPayX请求支付错误:'.var_export($response, true));
         }
 
-        return json_decode($request->getBody(), true);
+        return $response->json();
     }
 
     //Todo: Postman虚拟测试通过,需要真实数据参考验证

+ 9 - 9
app/Http/Controllers/Gateway/EPay.php

@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Gateway;
 
 use App\Models\Payment;
 use Auth;
-use GuzzleHttp\Client;
+use Http;
 use Illuminate\Http\JsonResponse;
 use Illuminate\Http\Request;
 use Response;
@@ -63,15 +63,15 @@ class EPay extends AbstractPayment
 
     public function queryInfo(): JsonResponse
     {
-        $request = (new Client())->get(sysConfig('epay_url').'api.php', [
-            'query' => [
-                'act' => 'query',
-                'pid' => sysConfig('epay_mch_id'),
-                'key' => sysConfig('epay_key'),
-            ],
+        $response = Http::get(sysConfig('epay_url').'api.php', [
+            'act' => 'query',
+            'pid' => sysConfig('epay_mch_id'),
+            'key' => sysConfig('epay_key'),
         ]);
-        if ($request->getStatusCode() === 200) {
-            return Response::json(['status' => 'success', 'data' => json_decode($request->getBody(), true)]);
+
+
+        if ($response->ok()) {
+            return Response::json(['status' => 'success', 'data' => $response->json()]);
         }
 
         return Response::json(['status' => 'fail', 'message' => '获取失败!请检查配置信息']);

+ 4 - 10
app/Http/Controllers/Gateway/PayPal.php

@@ -6,7 +6,7 @@ namespace App\Http\Controllers\Gateway;
 use App\Models\Payment;
 use Auth;
 use Exception;
-use GuzzleHttp\Client;
+use Http;
 use Illuminate\Http\JsonResponse;
 use Illuminate\Http\Request;
 use Log;
@@ -39,14 +39,8 @@ class PayPal extends AbstractPayment
             'validate_ssl'   => true,
         ];
         $this->provider->setApiCredentials($config);
-        $this->exChange = 7;
-        $client = new Client(['timeout' => 15]);
-        $exChangeRate = json_decode($client->get('http://api.k780.com/?app=finance.rate&scur=USD&tcur=CNY&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4')
-            ->getBody(), true);
-
-        if ($exChangeRate && $exChangeRate['success']) {
-            $this->exChange = $exChangeRate['result']['rate'];
-        }
+        $response = Http::timeout(15)->get('http://api.k780.com/?app=finance.rate&scur=USD&tcur=CNY&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4');
+        $this->exChange = $response->json()['result']['rate'] ?? 7;
     }
 
     public function purchase($request): JsonResponse
@@ -122,7 +116,7 @@ class PayPal extends AbstractPayment
     {
         $request->merge(['cmd' => '_notify-validate']);
         foreach ($request->input() as $key => $value) {
-            if ($value == null) {
+            if ($value === null) {
                 $request->request->set($key, '');
             }
         }

+ 3 - 7
app/Jobs/VNet/addUser.php

@@ -3,7 +3,7 @@
 namespace App\Jobs\VNet;
 
 use App\Models\User;
-use GuzzleHttp\Client;
+use Http;
 use Illuminate\Bus\Queueable;
 use Illuminate\Contracts\Queue\ShouldQueue;
 use Illuminate\Foundation\Bus\Dispatchable;
@@ -46,12 +46,8 @@ class addUser implements ShouldQueue
 
     private function send($host, $secret): void
     {
-        $client = new Client([
-            'base_uri' => $host,
-            'timeout'  => 15,
-            'headers'  => ['secret' => $secret],
-        ]);
+        $client = Http::baseUrl($host)->timeout(15)->withHeaders(['secret' => $secret]);
 
-        $client->post('api/v2/user/add/list', ['json' => $this->data]);
+        $client->post('api/v2/user/add/list', $this->data);
     }
 }

+ 3 - 7
app/Jobs/VNet/delUser.php

@@ -2,7 +2,7 @@
 
 namespace App\Jobs\VNet;
 
-use GuzzleHttp\Client;
+use Http;
 use Illuminate\Bus\Queueable;
 use Illuminate\Contracts\Queue\ShouldQueue;
 use Illuminate\Foundation\Bus\Dispatchable;
@@ -34,14 +34,10 @@ class delUser implements ShouldQueue
 
     private function send($host, $secret): void
     {
-        $client = new Client([
-            'base_uri' => $host,
-            'timeout'  => 15,
-            'headers'  => ['secret' => $secret],
-        ]);
+        $client = Http::baseUrl($host)->timeout(15)->withHeaders(['secret' => $secret]);
 
         if (is_array($this->userIds)) {
-            $client->post('api/v2/user/del/list', ['json' => $this->userIds]);
+            $client->post('api/v2/user/del/list', $this->userIds);
         } else {
             $client->post('api/user/del/'.$this->userIds);
         }

+ 3 - 7
app/Jobs/VNet/editUser.php

@@ -3,7 +3,7 @@
 namespace App\Jobs\VNet;
 
 use App\Models\User;
-use GuzzleHttp\Client;
+use Http;
 use Illuminate\Bus\Queueable;
 use Illuminate\Contracts\Queue\ShouldQueue;
 use Illuminate\Foundation\Bus\Dispatchable;
@@ -41,12 +41,8 @@ class editUser implements ShouldQueue
 
     private function send($host, $secret): void
     {
-        $client = new Client([
-            'base_uri' => $host,
-            'timeout'  => 15,
-            'headers'  => ['secret' => $secret],
-        ]);
+        $client = Http::baseUrl($host)->timeout(15)->withHeaders(['secret' => $secret]);
 
-        $client->post('api/user/edit', ['json' => $this->data]);
+        $client->post('api/user/edit', $this->data);
     }
 }

+ 7 - 10
app/Jobs/VNet/reloadNode.php

@@ -2,7 +2,8 @@
 
 namespace App\Jobs\VNet;
 
-use GuzzleHttp\Client;
+use Arr;
+use Http;
 use Illuminate\Bus\Queueable;
 use Illuminate\Contracts\Queue\ShouldQueue;
 use Illuminate\Foundation\Bus\Dispatchable;
@@ -56,16 +57,12 @@ class reloadNode implements ShouldQueue
 
     public function send($host, $secret, $data): bool
     {
-        $client = new Client([
-            'base_uri' => $host,
-            'timeout'  => 15,
-            'headers'  => ['secret' => $secret],
-        ]);
+        $client = Http::baseUrl($host)->timeout(15)->withHeaders(['secret' => $secret]);
 
-        $ret = $client->post('api/v2/node/reload', ['json' => $data]);
-        if ($ret->getStatusCode() == 200) {
-            $message = json_decode($ret->getBody(), true);
-            if (array_key_exists('success', $message) && array_key_exists('content', $message)) {
+        $response = $client->post('api/v2/node/reload', $data);
+        if ($response->ok()) {
+            $message = $response->json();
+            if (Arr::has($message, ['success', 'content'])) {
                 if ($message['success']) {
                     return true;
                 }