YurunHttp 请求类(HttpRequest.php)
目录
[TOC]
说明
所有属性都可以通过链式操作方法进行设置,当然你也可以手动赋值,一切都是你自己的选择。
命名空间
Yurun\Until\HttpRequest
属性
名称 | 类型 | 说明 |
---|---|---|
$handler | resource | CURL操作对象,curl_init() 的返回值<br/> |
$url | string | 需要请求的Url地址<br/> |
$content | mixed | 发送内容,可以是字符串、数组、HttpRequestMultipartBody <br/> |
$options | array | curl_setopt_array() 所需要的第二个参数<br/> |
$headers | array | 请求头<br/> |
$cookies | array | Cookies<br/> |
$cookieFileName | string | 保存Cookie文件的文件名,为空不保存<br/> |
$retry | int | 失败重试次数,默认为0<br/> |
$useProxy | bool | 是否使用代理,默认false<br/> |
$proxy | array | 代理设置<br/> |
$isVerifyCA | bool | 是否验证证书<br/> |
$caCert | string | CA根证书路径<br/> |
$connectTimeout | int | 连接超时时间,单位:毫秒<br/> |
$timeout | int | 总超时时间,单位:毫秒<br/> |
$downloadSpeed | int | 下载限速,为0则不限制,单位:字节<br/> |
$uploadSpeed | int | 上传限速,为0则不限制,单位:字节<br/> |
$username | string | 用于连接中需要的用户名<br/> |
$password | string | 用于连接中需要的密码<br/> |
$saveFileOption | mixed | 请求结果保存至文件的配置<br/> |
$followLocation | bool | 根据location自动重定向<br/> |
$maxRedirects | int | 最大重定向次数<br/> |
$certType | string | 证书类型<br/>支持的格式有"PEM" (默认值), "DER"和"ENG"<br/> |
$certPath | string | 一个包含 PEM 格式证书的文件名<br/> |
$certPassword | string | 使用证书需要的密码<br/> |
$keyType | string | certType规定的私钥的加密类型,支持的密钥类型为"PEM"(默认值)、"DER"和"ENG"<br/> |
$keyPath | string | 包含 SSL 私钥的文件名<br/> |
$keyPassword | string | SSL私钥的密码<br/> |
说明
$options
curl_setopt_array()
所需要的第二个参数
// 支持自己设置额外的curl配置
$http->options = array(
CURLOPT_CRLF => 1,
CURLOPT_DNS_USE_GLOBAL_CACHE => false,
);
$headers
请求头
// 支持设置请求时候的header头
$http->headers = array(
'User-Agent' => 'abc',
'Accept' => '*/*',
);
$cookies
Cookies
// 支持设置请求时候的cookie
$http->cookies = array(
'uid' => 123,
'token' => 'aaaaaa',
);
$proxy
代理设置
$http->proxy = array(
'server' => '127.0.0.1', // 代理服务器地址
'port' => 25, // 代理服务器端口
'type' => , // 代理类型,支持:http、socks4、socks4a、socks5
'auth' => 'basic', // 代理认证方式,支持:basic、ntlm。一般默认basic
);
$saveFileOption
请求结果保存至文件的配置
$this->saveFileOption['filePath'] = '1.txt'; // 保存到的文件名
$this->saveFileOption['fileMode'] = 'w+'; // fopen支持的这里也都支持
在处理请求期间,还会写入键fp为打开文件的句柄,这个一般不用关心也没法进行操作。写入文件后fp值自动删除了。
方法
__construct
构造方法<br/>
定义: public function __construct()
参数: 无
返回值: mixed
__destruct
析构方法<br/>
定义: public function __destruct()
参数: 无
返回值: 无
open
打开一个新连接,初始化所有参数。一般不需要手动调用。<br/>
定义: public function open()
参数: 无
返回值: void
close
关闭连接。一般不需要手动调用。<br/>
定义: public function close()
参数: 无
返回值: void
HttpRequest::newSession
创建一个新会话,等同于new<br/>
定义: public static function newSession()
参数: 无
返回值: HttpRequest
url
设置请求地址<br/>
定义: public function url($url)
参数:
名称 | 类型 | 描述 |
---|---|---|
$url | string | 请求地址 |
返回值: HttpRequest
content
设置发送内容,requestBody的别名<br/>
定义: public function content($content)
参数:
名称 | 类型 | 描述 |
---|---|---|
$content | mixed | 发送内容,可以是字符串、数组、HttpRequestMultipartBody |
返回值: HttpRequest
params
设置参数,requestBody的别名<br/>
定义: public function params($params)
参数:
名称 | 类型 | 描述 |
---|---|---|
$params | mixed | 发送内容,可以是字符串、数组、HttpRequestMultipartBody |
返回值: HttpRequest
requestBody
设置请求主体<br/>
定义: public function requestBody($requestBody)
参数:
名称 | 类型 | 描述 |
---|---|---|
$requestBody | mixed | 发送内容,可以是字符串、数组、HttpRequestMultipartBody |
返回值: HttpRequest
options
批量设置CURL的Option<br/>
定义: public function options($options)
参数:
名称 | 类型 | 描述 |
---|---|---|
$options | array | curl_setopt_array()所需要的第二个参数 |
返回值: HttpRequest
option
设置CURL的Option<br/>
定义: public function option($option, $value)
参数:
名称 | 类型 | 描述 |
---|---|---|
$option | int | 需要设置的CURLOPT_XXX选项 |
$value | mixed | 值 |
返回值: HttpRequest
headers
批量设置请求头<br/>
定义: public function headers($headers)
参数:
名称 | 类型 | 描述 |
---|---|---|
$headers | array | / |
返回值: HttpRequest
header
设置请求头<br/>
定义: public function header($header, $value)
参数:
名称 | 类型 | 描述 |
---|---|---|
$header | string | 请求头名称 |
$value | string | 值 |
返回值: HttpRequest
accept
设置Accept<br/>
定义: public function accept($accept)
参数:
名称 | 类型 | 描述 |
---|---|---|
$accept | string | / |
返回值: HttpRequest
acceptLanguage
设置Accept-Language<br/>
定义: public function acceptLanguage($acceptLanguage)
参数:
名称 | 类型 | 描述 |
---|---|---|
$acceptLanguage | string | / |
返回值: HttpRequest
acceptEncoding
设置Accept-Encoding<br/>
定义: public function acceptEncoding($acceptEncoding)
参数:
名称 | 类型 | 描述 |
---|---|---|
$acceptEncoding | string | / |
返回值: HttpRequest
acceptRanges
设置Accept-Ranges<br/>
定义: public function acceptRanges($acceptRanges)
参数:
名称 | 类型 | 描述 |
---|---|---|
$acceptRanges | string | / |
返回值: HttpRequest
cacheControl
设置Cache-Control<br/>
定义: public function cacheControl($cacheControl)
参数:
名称 | 类型 | 描述 |
---|---|---|
$cacheControl | string | / |
返回值: HttpRequest
cookies
批量设置Cookies<br/>
定义: public function cookies($cookies)
参数:
名称 | 类型 | 描述 |
---|---|---|
$cookies | array | 键值对应数组 |
返回值: HttpRequest
cookie
设置Cookie<br/>
定义: public function cookie($name, $value)
参数:
名称 | 类型 | 描述 |
---|---|---|
$name | string | 名称 |
$value | string | 值 |
返回值: HttpRequest
contentType
设置Content-Type<br/>
定义: public function contentType($contentType)
参数:
名称 | 类型 | 描述 |
---|---|---|
$contentType | string | / |
返回值: HttpRequest
range
设置Range<br/>
定义: public function range($range)
参数:
名称 | 类型 | 描述 |
---|---|---|
$range | string | / |
返回值: HttpRequest
referer
设置Referer<br/>
定义: public function referer($referer)
参数:
名称 | 类型 | 描述 |
---|---|---|
$referer | string | / |
返回值: HttpRequest
userAgent
设置User-Agent<br/>
定义: public function userAgent($userAgent)
参数:
名称 | 类型 | 描述 |
---|---|---|
$userAgent | string | / |
返回值: HttpRequest
ua
设置User-Agent,userAgent的别名<br/>
定义: public function ua($userAgent)
参数:
名称 | 类型 | 描述 |
---|---|---|
$userAgent | string | / |
返回值: HttpRequest
retry
设置失败重试次数,状态码非200时重试<br/>
定义: public function retry($retry)
参数:
名称 | 类型 | 描述 |
---|---|---|
$retry | string | / |
返回值: HttpRequest
proxy
代理<br/>
定义: public function proxy($server, $port, $type = "http", $auth = "basic")
参数:
名称 | 类型 | 描述 |
---|---|---|
$server | string | 代理服务器地址 |
$port | int | 代理服务器端口 |
$type | string | 代理类型,支持:http、socks4、socks4a、socks5 |
$auth | string | 代理认证方式,支持:basic、ntlm。一般默认basic |
返回值: HttpRequest
timeout
设置超时时间<br/>
定义: public function timeout($timeout = null, $connectTimeout = null)
参数:
名称 | 类型 | 描述 |
---|---|---|
$timeout | int | 总超时时间,单位:毫秒 |
$connectTimeout | int | 连接超时时间,单位:毫秒 |
返回值: HttpRequest
limitRate
限速<br/>
定义: public function limitRate($download = 0, $upload = 0)
参数:
名称 | 类型 | 描述 |
---|---|---|
$download | int | 下载速度,为0则不限制,单位:字节 |
$upload | int | 上传速度,为0则不限制,单位:字节 |
返回值: HttpRequest
userPwd
设置用于连接中需要的用户名和密码<br/>
定义: public function userPwd($username, $password)
参数:
名称 | 类型 | 描述 |
---|---|---|
$username | string | 用户名 |
$password | string | 密码 |
返回值: HttpRequest
saveFile
保存至文件的设置<br/>
定义: public function saveFile($filePath, $fileMode = "w+")
参数:
名称 | 类型 | 描述 |
---|---|---|
$filePath | string | 文件路径 |
$fileMode | string | 文件打开方式,默认w+ |
返回值: HttpRequest
getSavePath
获取文件保存路径<br/>
定义: public function getSavePath()
参数: 无
返回值: string
sslCert
设置SSL证书<br/>
定义: public function sslCert($path, $type = null, $password = null)
参数:
名称 | 类型 | 描述 |
---|---|---|
$path | string | 一个包含 |
$type | string | 证书类型,支持的格式有”PEM”(默认值),“DER”和”ENG” |
$password | string | 使用证书需要的密码 |
返回值: HttpRequest
sslKey
设置SSL私钥<br/>
定义: public function sslKey($path, $type = null, $password = null)
参数:
名称 | 类型 | 描述 |
---|---|---|
$path | string | 包含 |
$type | string | certType规定的私钥的加密类型,支持的密钥类型为”PEM”(默认值)、”DER”和”ENG” |
$password | string | SSL私钥的密码 |
返回值: HttpRequest
send
发送请求,所有请求的老祖宗<br/>
定义: public function send($url = null, $requestBody = [], $method = "GET")
参数:
名称 | 类型 | 描述 |
---|---|---|
$url | string | 请求地址,如果为null则取url属性值 |
$requestBody | array | 发送内容,可以是字符串、数组、HttpRequestMultipartBody ,如果为空则取content属性值 |
$method | array | 请求方法,GET、POST等 |
返回值: HttpResponse
get
GET请求<br/>
定义: public function get($url = null, $requestBody = [])
参数:
名称 | 类型 | 描述 |
---|---|---|
$url | string | 请求地址,如果为null则取url属性值 |
$requestBody | array | 发送内容,可以是字符串、数组、HttpRequestMultipartBody ,如果为空则取content属性值 |
返回值: HttpResponse
post
POST请求<br/>
定义: public function post($url = null, $requestBody = [])
参数:
名称 | 类型 | 描述 |
---|---|---|
$url | string | 请求地址,如果为null则取url属性值 |
$requestBody | array | 发送内容,可以是字符串、数组、HttpRequestMultipartBody ,如果为空则取content属性值 |
返回值: HttpResponse
head
HEAD请求<br/>
定义: public function head($url = null, $requestBody = [])
参数:
名称 | 类型 | 描述 |
---|---|---|
$url | string | 请求地址,如果为null则取url属性值 |
$requestBody | array | 发送内容,可以是字符串、数组、HttpRequestMultipartBody ,如果为空则取content属性值 |
返回值: HttpResponse
put
PUT请求<br/>
定义: public function put($url = null, $requestBody = [])
参数:
名称 | 类型 | 描述 |
---|---|---|
$url | string | 请求地址,如果为null则取url属性值 |
$requestBody | array | 发送内容,可以是字符串、数组、HttpRequestMultipartBody ,如果为空则取content属性值 |
返回值: HttpResponse
patch
PATCH请求<br/>
定义: public function patch($url = null, $requestBody = [])
参数:
名称 | 类型 | 描述 |
---|---|---|
$url | string | 请求地址,如果为null则取url属性值 |
$requestBody | array | 发送内容,可以是字符串、数组、HttpRequestMultipartBody ,如果为空则取content属性值 |
返回值: HttpResponse
delete
DELETE请求<br/>
定义: public function delete($url = null, $requestBody = [])
参数:
名称 | 类型 | 描述 |
---|---|---|
$url | string | 请求地址,如果为null则取url属性值 |
$requestBody | array | 发送内容,可以是字符串、数组、HttpRequestMultipartBody ,如果为空则取content属性值 |
返回值: HttpResponse
download
直接下载文件<br/>
定义: public function download($fileName, $url = null, $requestBody = [], $method = "GET")
参数:
名称 | 类型 | 描述 |
---|---|---|
$fileName | string | 保存路径 |
$url | string | 下载文件地址 |
$requestBody | array | 发送内容,可以是字符串、数组、HttpRequestMultipartBody ,如果为空则取content属性值 |
$method | string | 请求方法,GET、POST等,一般用GET |
返回值: HttpResponse