add clear

This commit is contained in:
as2252258@163.com
2019-09-29 17:10:14 +08:00
parent f2dc33fca4
commit b2d477f0cf
+16 -10
View File
@@ -3,6 +3,7 @@
namespace wchat; namespace wchat;
use Swoole\Coroutine\Http\Client; use Swoole\Coroutine\Http\Client;
use Swoole\Coroutine\System;
class WxClient class WxClient
{ {
@@ -116,6 +117,16 @@ class WxClient
*/ */
private function request($url, $data = []) private function request($url, $data = [])
{ {
if (function_exists('getIsCli') && getIsCli()) {
if (strpos($url, 'http://') !== FALSE) {
$url = str_replace('http://', '', $url);
} else if (strpos($url, 'https://') !== FALSE) {
$url = str_replace('https://', '', $url);
}
$explode = explode('/', $url);
$ip = System::gethostbyname(array_shift($explode));
return $this->coroutine($ip, $url, $data);
}
if ( if (
strpos($url, 'http://') === 0 || strpos($url, 'http://') === 0 ||
strpos($url, 'https://') === 0 strpos($url, 'https://') === 0
@@ -123,10 +134,6 @@ class WxClient
return $this->curl($url, $data); return $this->curl($url, $data);
} }
if (function_exists('getIsCli') && getIsCli()) {
return $this->coroutine($url, $data);
}
if ($this->isSSL) { if ($this->isSSL) {
return $this->curl('https://' . $this->host . '/' . $url, $data); return $this->curl('https://' . $this->host . '/' . $url, $data);
} else { } else {
@@ -135,21 +142,20 @@ class WxClient
} }
/** /**
* @param $ip
* @param $url * @param $url
* @param array $data * @param array $data
* @return array|mixed|Result * @return array|mixed|Result
* @throws \Exception * @throws \Exception
*
* 使用swoole协程方式请求 * 使用swoole协程方式请求
*/ */
private function coroutine($url, $data = []) private function coroutine($ip, $url, $data = [])
{ {
$_data = $this->paramEncode($data); $_data = $this->paramEncode($data);
if ($this->method == 'get' && is_array($_data)) { if ($this->method == 'get' && is_array($_data)) {
$url .= '?' . http_build_query($_data); $url .= '?' . http_build_query($_data);
} }
$client = $this->getClient($ip, $this->getHostPort(), $url, $data);
$client = $this->getClient($this->getHostPort(), $url, $data);
if ($client->statusCode < 0) { if ($client->statusCode < 0) {
throw new \Exception($client->errMsg); throw new \Exception($client->errMsg);
} }
@@ -179,14 +185,14 @@ class WxClient
} }
/** /**
* @param $host
* @param $port * @param $port
* @param $url * @param $url
* @param $data * @param $data
* @return Client * @return Client
*/ */
private function getClient($port, $url, $data) private function getClient($host, $port, $url, $data)
{ {
$host = $this->getHostIp();
$client = new Client($host, $port, $this->isSSL); $client = new Client($host, $port, $this->isSSL);
if (!empty($this->agent)) { if (!empty($this->agent)) {
$this->header['User-Agent'] = $this->agent; $this->header['User-Agent'] = $this->agent;