-
Notifications
You must be signed in to change notification settings - Fork 18
components net
-
urlstring请求的完整路径(非完整路径将用当前站数据填充)
-
dataarray提交数据,含有如下结构的数组,其数据可以是字符串或数组
{ "type" : 交互类型,('GET')可以是 OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE "data" : 报文主体数据('') "header" : 自定义头信息(''), 可数组[不换行头, ...] "cookie" : cookie数据(''), "get" : get数据(''), "post" : post数据,相当于type=POST, data=当期值(''), "file" : 上传文件,默认设置type=POST, 结构为 [{ "name" : 附件字段名 "path" : 文件磁盘路径, 设置 data 不用设置此值 "data" : 文件二进制数据, 设置 path 时不用设置此值 "mime" : 附件类型, 设置Content-Type('application/octet-stream') "head" : 自定义头信息(''), 可数组[不换行头, ...] "file" : 附件文件名, 默认使用 path 文件名或生成'xx.bin' }, ...] "timeout" : 超时时间(10s), 数字=连接超时, 数组=[连接超时(10), 响应超时(default_socket_timeout)], "context" : 配置上下文, 默认={ "proxy" : 代理配置 { "addr" : 代理地址, tcp://xxx:port "user" : 用户密码, user:password }, "ssl" : 关闭 ssl 证书验证 { "verify_peer_name" : false } } "save" : 将响应体保存到磁盘, 下文件更省内存, 设置后方法返回的response为"" } -
modeboolean, string, array
false(默认) = 同步请求 true = 无结果异步请求 回调结构 = 异步请求回调符合 of::callFunc 结构(不能带资源参数), 接收响应结果 若url为"", 则仅触发回调不发生网络请求
<?php
/**
* 回调或返回的结果结构, html状态码小于400算成功
* 失败时 : {state:false, errno:失败码, errstr:错误描述}
* 成功时 : {state:true, header:响应头, response:响应数据}
*/
of_base_com_net::request(
'http://www.163.com/', //请求地址
array('get' => array('m' => '1')), //get参数, 可以是数组也可以是字符串
array( //异步执行完将数据写入到磁盘上
'asCall' => 'of_base_com_disk::file',
'params' => array(ROOT_DIR . '/demo.txt')
)
);
of_base_com_net::request('http://www.163.com/', array(
'get' => array(
'key' => 'val' //设置$_GET['key'] = 'val'
),
'post' => array(
'key' => 'val' //设置$_POST['key'] = 'val'
),
'file' => array(array( //此处是二维数组
'name' => 'key', //上传文件$_FILES['key']
'data' => 'val', //设置$_FILES['key']['tmp_name']文件内容
'mime' => 'application/json' //设置$_FILES['key']['type'] = 'application/json'
))
));
-
strstring指定解码字符串
<?php $str = "5\r\nabcde\r\n1\r\nf0"; echo of_base_com_net::dechunk($str); //结果 abcdef, 失败返回 false
-
configarray *为必填项
{ "domain" :*指定权限域名 "path" :*指定有效路径 "name" : empty=读取有效cookie, 字符串=设置cookie "value" : null=删除name, 字符串=设置name "expire" : empty(默认)=不过期, value的过期时间格式 "encode" : 是否对value进行 RFC 1738 编码,默认=true }
返回 true=支持, false=不支持
接收触发参数 : {
"params" :&请求参数 {
"type" : 交互类型(大写字符串)可以是 OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE
"data" : 报文主体数据(字符串)
"get" : get数据(字符串)
"cookie" : cookie数据(字符串)
"header" : 自定义头信息(字符串)
"timeout" : [连接超时, 响应超时]
"url" : 访问路径(字符串)
"oUrl" : 原始访问路径(字符串)
其它调用调用参数
}
}
接收触发参数 : {
"params" :&请求参数, 同"of_base_com_net::before事件"结构
"result" :&请求结果, 同"of_base_com_net::request"响应结构
}
<?php
//请求前修改地址
of::event('of_base_com_net::before', function ($p) {
//修改访问地址(模拟代理)
$p['params']['url'] = 'https://www.baidu.com/search/error.html';
});
//请求后修改结果
of::event('of_base_com_net::after', function ($p) {
//重试访问地址(模拟重试)
$p['result']['state'] || $p['result'] = of_base_com_net::request($p['params']['url'], $p['params']);
});
//模拟访问代理与重试
print_r(of_base_com_net::request('http://php.net/', array(
'post' => array('a' => 1)
)));
手册地址 http://phpof.net/
- 入门指引
-
疑难解答
- 部署时会遇到的那些常见问题
简单却容易忽视 - 框架内置有哪些管理界面
生产模式进入界面需用 __OF_DEBUG__ - 如何定制不同的架构模式
通过配置入口文件中调度方法的参数即可 - 如何面向命名空间开发
of_xx 类可以按照命名空间方式调用 - 如何设置不同的部署模式
通过_of.debug设置 开发,测试,生产 模式 - 为什么控制层类文件要返回true
这是防止非法访问的方法之一 - 为什么传到视图层的变量会被编码
这是因为 XSS 安全防范的原因 - 为什么框架没有SQL构造器
因常规方案牺牲了性能又未很好解决问题 - 如何快速开发用户及权限管理功能
单点登录(SSO)模块因此而存在 - 怎么在系统的基础上扩展底层功能
三点: 扩展开发, 预先加载, 底层钩子 - 怎么使用 Composer 依赖管理工具
框架已集成, 默认关闭状态
- 部署时会遇到的那些常见问题
- 组件使用
- 集成插件
- 扩展开发
- 开发手册