# \PG\MSF\Client\HttpClient

Class Client

## Summary

Methods
Properties
Constants
__construct()
__sleep()
__unsleep()
getServerInstance()
getConfig()
getPack()
getRedisPool()
getMysqlPool()
getRedisProxy()
setRedisPools()
setRedisProxies()
destroy()
isUse()
getIsDestroy()
setContext()
setHeaders()
getHeaders()
setCookies()
asyncDnsLookup()
goDnsLookup()
goPost()
goGet()
goSinglePost()
goSingleGet()
goConcurrent()
dnsLookupCallBack()
parseUrl()
get()
post()
setDnsCache()
clearDnsCache()
getDnsCache()
$__useCount
$__genTime
$__isContruct
$stdClass
$dnsCache
$headers
$client
$urlData
$dnsTimeout
No constants found
No protected methods found
$__isDestroy
$redisPools
$mysqlPools
$redisProxies
$reflections
$dnsExpire
$dnsTimes
N/A
No private methods found
No private properties found
N/A

File
  Client/Http/Client.php
Package
  Client\Http
Class hierarchy
  \PG\MSF\Base\Child
  \PG\MSF\Base\Core
  \PG\MSF\Client\Http\Client

## Tags

None found

## Properties

### $__useCount

    $__useCount : integer

#### Type

integer — 作用计数

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### $__genTime

    $__genTime : integer

#### Type

integer — 创建时间

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### $__isContruct

    $__isContruct : boolean

#### Type

boolean — 是否执行构造方法

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### $stdClass

    $stdClass : \stdClass|null

#### Type

\stdClass|null — 对象模板

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### $dnsCache

    $dnsCache : array

#### Type

array — DNS查询缓存

#

## Tags

None found

### $headers

    $headers : array

#### Type

array — 请求报头

#

## Tags

None found

### $client

    $client : \swoole_http_client

#### Type

\swoole_http_client — swoole http client

#

## Tags

None found

### $urlData

    $urlData : array

#### Type

array — 解析的URL结果

#

## Tags

None found

### $dnsTimeout

    $dnsTimeout : integer

#### Type

integer — DNS解析超时时间

#

## Tags

None found

### $__isDestroy

    $__isDestroy : boolean

#### Type

boolean — 销毁标志

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### $redisPools

    $redisPools : array

#### Type

array — redis连接池

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### $mysqlPools

    $mysqlPools : array

#### Type

array — mysql连接池

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### $redisProxies

    $redisProxies : array

#### Type

array — redis代理池

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### $reflections

    $reflections : array

#### Type

array — 反射类属性的默认值

#

Inherited from
  \PG\MSF\Base\Child

## Tags

None found

### $dnsExpire

    $dnsExpire : integer

#### Type

integer — DNS缓存有效时间（秒）

#

## Tags

None found

### $dnsTimes

    $dnsTimes : integer

#### Type

integer — DNS缓存有效次数

#

## Tags

None found

## Methods

### __construct()

    __construct(string  $url = '', integer  $timeout, array  $headers = array()) : \PG\MSF\Client\Http\Client

Client constructor.

#### Parameters

string | $url | 如http://domain.com:port，http://domain.com:port/path/
integer | $timeout | 域名解析超时时间，单位秒
array | $headers | 请求报头

#### Returns

\PG\MSF\Client\Http\Client —

$this

#

## Tags

None found

### __sleep()

    __sleep() : array

在序列化及dump对象时使用，代表哪些属于需要导出

#### Returns

array

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### __unsleep()

    __unsleep()

和__sleep作用相反

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### getServerInstance()

    getServerInstance() : \swoole_server

获取运行Server实例

#### Returns

\swoole_server

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### getConfig()

    getConfig() : \Noodlehaus\Config

获取运行server实例配置对象

#### Returns

\Noodlehaus\Config

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### getPack()

    getPack() : \PG\MSF\Pack\IPack

获取运行server实例打包对象

#### Returns

\PG\MSF\Pack\IPack

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### getRedisPool()

    getRedisPool(string  $poolName) : boolean|\PG\AOP\Wrapper|\PG\MSF\Pools\CoroutineRedisProxy|\Redis

获取Redis连接池

#### Parameters

string | $poolName | 配置的Redis连接池名称

#### Returns

boolean|\PG\AOP\Wrapper|\PG\MSF\Pools\CoroutineRedisProxy|\Redis

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### getMysqlPool()

    getMysqlPool(string  $poolName) : boolean|\PG\AOP\Wrapper

获取MySQL连接池

#### Parameters

string | $poolName | 配置的MySQL连接池名称

#### Returns

boolean|\PG\AOP\Wrapper

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### getRedisProxy()

    getRedisProxy(string  $proxyName) : boolean|\PG\AOP\Wrapper|\PG\MSF\Pools\CoroutineRedisProxy|\Redis

获取Redis代理

#### Parameters

string | $proxyName | 配置的Redis代理名称

#### Throws

\Exception

#### Returns

boolean|\PG\AOP\Wrapper|\PG\MSF\Pools\CoroutineRedisProxy|\Redis

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### setRedisPools()

    setRedisPools(array|null  $redisPools) : $this

设置RedisPools

#### Parameters

array|null | $redisPools | 多个Redis连接池实例，通常用于销毁Redis连接池，赋值为NULL

#### Returns

$this

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### setRedisProxies()

    setRedisProxies(array|null  $redisProxies) : $this

设置RedisPools

#### Parameters

array|null | $redisProxies | 多个Redis代理实例，通常用于销毁Redis代理，赋值为NULL

#### Returns

$this

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### destroy()

    destroy()

销毁

#

## Tags

None found

### isUse()

    isUse()

对象已使用标识

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### getIsDestroy()

    getIsDestroy() : boolean

是否已经执行destroy

#### Returns

boolean

#

Inherited from
  \PG\MSF\Base\Core

## Tags

None found

### setContext()

    setContext(\PG\MSF\Helpers\Context  $context) : $this

设置上下文

#### Parameters

\PG\MSF\Helpers\Context | $context | 请求上下文对象

#### Returns

$this

#

Inherited from
  \PG\MSF\Base\Child

## Tags

None found

### setHeaders()

    setHeaders(array  $headers) : $this

设置请求报头

#### Parameters

array | $headers | 键值对应数组的报头列表

#### Returns

$this

#

## Tags

None found

### getHeaders()

    getHeaders() : array

获取当前请求报头

#### Returns

array

#

## Tags

None found

### setCookies()

    setCookies(array  $cookies) : $this

设置请求Cookies

#### Parameters

array | $cookies | 键值对应数组的Cookie数据

#### Returns

$this

#

## Tags

None found

### asyncDnsLookup()

    asyncDnsLookup(callable  $callBack, array  $headers = array())

异步DNS查询

#### Parameters

callable | $callBack | DNS查询异步回调函数
array | $headers | 键值对应数组的报头列表

#### Throws

\Exception

#

## Tags

None found

### goDnsLookup()

    goDnsLookup(string  $url = '', integer  $timeout, array  $headers = array()) : \PG\MSF\Coroutine\Dns|$this

运行DNS查询协程

#### Parameters

string | $url | 如 https://www.baidu.com
integer | $timeout | 协程超时时间
array | $headers | 额外的报头

#### Returns

\PG\MSF\Coroutine\Dns|$this

#

## Tags

None found

### goPost()

    goPost(string  $url = '', array  $data = array(), integer  $timeout = 30000, array  $headers = array()) : \PG\MSF\Coroutine\Http

在完成DNS查询的基础上，运行POST请求协程

#### Parameters

string | $url | 请求的URL
array | $data | POST的数据
integer | $timeout | 请求超时时间
array | $headers | 额外的报头

#### Throws

\Exception

#### Returns

\PG\MSF\Coroutine\Http

#

## Tags

None found

### goGet()

    goGet(string  $url = '', array  $query = null, integer  $timeout = 30000, array  $headers = array()) : \PG\MSF\Coroutine\Http

在完成DNS查询的基础上，运行GET请求协程

#### Parameters

string | $url | 请求的URL
array | $query | POST的数据
integer | $timeout | 请求超时时间
array | $headers | 额外的报头

#### Throws

\Exception

#### Returns

\PG\MSF\Coroutine\Http

#

## Tags

None found

### goSinglePost()

    goSinglePost(string  $url = '', array  $data = array(), integer  $timeout = 30000, array  $headers = array()) : \PG\MSF\Coroutine\Http

单个独立POST请求协程（自动完成DNS查询、获取数据）

#### Parameters

string | $url | 请求的URL
array | $data | POST的数据
integer | $timeout | 请求超时时间
array | $headers | 额外的报头

#### Throws

\Exception

#### Returns

\PG\MSF\Coroutine\Http

#

## Tags

None found

### goSingleGet()

    goSingleGet(string  $url = '', array  $query = null, integer  $timeout = 30000, array  $headers = array()) : \PG\MSF\Coroutine\Http

单个独立GET请求协程（自动完成DNS查询、获取数据）

#### Parameters

string | $url | 请求的URL
array | $query | POST的数据
integer | $timeout | 请求超时时间
array | $headers | 额外的报头

#### Throws

\Exception

#### Returns

\PG\MSF\Coroutine\Http

#

## Tags

None found

### goConcurrent()

    goConcurrent(array  $requests) : array

并行POST或者Get请求协程（自动完成DNS查询、获取数据）

#### Parameters

array | $requests | 格式如：
    [
      [
         // 必须为全路径URL
        'url'         => 'http://www.baidu.com/xxx',
        'method'      => 'GET', // 默认GET
        'dns_timeout' => 1000, // 默认为30s
        'timeout'     => 3000,  // 默认不超时
        'headers'     => [],    // 默认为空
        'data'        => ['a' => 'b'] // 发送数据
      ],
      [
        'url'         => 'http://www.baidu.com/xxx',
        'method'      => 'POST',
        'timeout'     => 3000,
        'headers'     => [],
        'data'        => ['a' => 'b'] // 发送数据
      ],
      [
        'url'         => 'http://www.baidu.com/xxx',
        'method'      => 'POST',
        'timeout'     => 3000,
        'headers'     => [],
        'data'        => ['a' => 'b'] // 发送数据
      ],
    ];

#### Throws

\Exception

#### Returns

array

#

## Tags

None found

### dnsLookupCallBack()

    dnsLookupCallBack(  $ip) : boolean

DNS查询返回时回调

#### Parameters

| $ip | string 主机名对应的IP

#### Returns

boolean

#

## Tags

None found

### parseUrl()

    parseUrl(string  $url) : boolean|mixed

标准化解析URL

#### Parameters

string | $url | 待解析URL

#### Returns

boolean|mixed

#

static

## Tags

None found

### get()

    get(string  $path, array  $query,   $callback)

发起异步GET请求

#### Parameters

string | $path | 待请求的URL Path
array | $query | 查询参数
| $callback |

#

## Tags

None found

### post()

    post(string  $path, array  $data,   $callback)

发起异步POST请求

#### Parameters

string | $path | 待请求的URL Path
array | $data | 发送的POST数据
| $callback |

#

## Tags

None found

### setDnsCache()

    setDnsCache(string  $host, string  $ip)

设置DNS缓存

#### Parameters

string | $host | HOST名称
string | $ip | 已解析的IP

#

static

## Tags

None found

### clearDnsCache()

    clearDnsCache(  $host)

清除HOST对应的DNS缓存

#### Parameters

| $host | HOST名称

#

static

## Tags

None found

### getDnsCache()

    getDnsCache(string  $host) : mixed|null

获取DNS缓存

#### Parameters

string | $host | HOST名称

#### Returns

mixed|null

#

static

## Tags

None found

### Client.php