boaPHP开发手册v5.5

网络请求

网络请求使用 http类,是从自己服务器向远程地址发起请求/上传等

GET请求


	$http = boa::http();
	$http->get('http://boasoft.top/test.php'); // GET请求
	$header = $http->get_header(); // 响应头
	$status = $http->get_status(); // 状态码/错误码
	if($status == 200){
		$body = $http->get_body(); // 正文
	}else{
		$error = $http->get_error(); // 错误
	}

POST请求


	$http = boa::http();
	$data = ['name' => 'test', 'age' => 18];
	$http->post('http://boasoft.top/test.php', $data); // POST请求,发送表单数据
	$posttype = $http->get_posttype(); // POST类型,默认form
	$body = $http->get_body();

发送JSON/XML


	$http = boa::http();
	$http->cfg('posttype', 'json'); // 设置POST类型,或者为:xml
	$data = ['name' => 'test', 'age' => 18];
	$http->post('http://boasoft.top/test.php', $data); // POST请求,发送JSON/XML数据
	$posttype = $http->get_posttype(); // POST类型
	$body = $http->get_body();

上传文件


	$http = boa::http();
	$file = [ //上传1个图片+1个TXT文件
		'avatar' => BS_WWW .'res/img.gif;image/gif', // '表单字段' => '文件路径;MIME类型',
		'readme' => BS_WWW .'/res/file.txt' // MIME类型省略的话由程序检测
	];
	$data = ['name' => 'test', 'age' => 18]; // 附加表单数据
	$http->upload('http://boasoft.top/test.php', $file, $data);
	$body = $http->get_body();

使用代理


	$http = boa::http();
	$http->cfg('proxy', '127.0.0.1:8888'); // 设置为Fiddler端口,可以用Fiddler测试网络请求
	$http->get('http://www.sina.com.cn');
	$body = $http->get_body();

设置Cookie


	$http = boa::http();
	/* 通过设置Cookie可以访问授权页面。
	   Cookie可以从浏览器中获得;
	   也可以通过POST数据登录成功后,从响应HTTP头中获取;
	   将其存储下来,每次访问时可以用set_cookie()设置;
	   注意管理Cookie的过期问题。
	*/
	$http->set_cookie('PHPSESSID=4oipi9oep7a0qdvrtha81bges4; uid=1');
	$http->get('http://www.xxxx.com/admin/');
	$body = $http->get_body();

请求HTTPS


	$http = boa::http();
	$http->cfg('ssl', 1); // 设置为单向认证,查看ssl配置项说明来放置证书
	$http->get('https://www.xxxx.com/vip.php');
	$body = $http->get_body();

附加请求头


	$http = boa::http();
	$http->cfg('header', [
		'Referer' => 'http://xxxxx.com', // 模拟来路
		'User-Agent' => 'Mozilla/5.0 (Linux; Android 9; ELE-AL00 Build/HUAWEIELE-AL0001; wv)
		AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36
		T7/11.15 baiduboxapp/11.15.5.10 (Baidu; P1 9)' // 伪装成华为手机发送请求
	]);
	$http->get('https://www.xxxx.com/vip.php');
	$body = $http->get_body();

处理压缩页面


	$http = boa::http();
	$http->get('https://www.xxxx.com/vip.php');
	$body = $http->get_body('gzip'); // 对方页面压缩传输时,支持gzip和deflate解压

只获取HTTP头


	$arr = boa::http()->head('http://baidu.com'); // 响应头数组

各种设置或配置一定要放在请求发起之前