php网络请求
(1) get网络请求
<
//curl:用于网络请求
//curl:是一个利用URL语法规定来传输文件和数据的工具,可用于HTTP、https、FTP等协议
//用法
// 1、初始化
// curl_init();
// 2、设置变量
// curl_setopt();
// 3、执行并获得结果
// curl_exec();
// 4、释放curl
// curl_close;
//通过curl进行get网络请求
//默认get方式
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,"http://www.baidu.com");
// CURLOPT_RETURNTRANSFER 设置是否有返回值
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
//执行完以后的返回值
$response = curl_exec($curl);
//释放curl
curl_close($curl);
echo $response;
?>
得到结果是百度的页面,因为response被解析成一个HTML文件显示出来
由于上述写法过于麻烦,我们可以通过函数封装使用curl,使用的时候直接调用就行了
function http_get($url){
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
// CURLOPT_RETURNTRANSFER 设置是否有返回值
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
//执行完以后的返回值
$response = curl_exec($curl);
//释放curl
curl_close($curl);
return $response;
}
$value = http_get("http://www.baidu.com");
但这样鞋每次都要写上这个函数,因此我们也可以单独将这个封装写在一个php中,然后直接调用这个php文件,如这个php名位:php网络请求封装.php
//include_once :如果发现前面已经引入过,就不在引入
include_once("php网络请求封装.php");
$value = http_get("http://www.baidu.com");
echo $value;
//此方法同样可以获得百度页面
(2)post网络请求
相对post网络请求进行封装,与get方式相同,但post方式多了一个参数
php网络请求封装.php
function http_post($url,$postbody){
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
// CURLOPT_RETURNTRANSFER 设置是否有返回值
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLOPT_POSTFIELDS,$postbody);//get方式通过网址传递参数,但post通过CURLOPT_POSTFIELDS传递参数,但这仅仅只针对于curl而言
//执行完以后的返回值
$response = curl_exec($curl);
//释放curl
curl_close($curl);
return $response;
}
php网络请求.php
//获得通过curl网络请求发送过来的数据,并将数据返回给curl
$values = $_POST;
echo $values["name"];//此时可以看到显示 张三
php网络请求1.php
$value = http_post("http://localhost/myphp/day7/php网络请求.php","name=张三&pwd=111");//参数建议用与符号拼接
echo $value;
常见的HTTP状态值
1、200:服务器成功返回网页
2、404:请求的网页不存在
3、503:服务器超时
其他HTTP状态值
当服务器响应时,其状态行的信息为HTTP的版本号,状态码,及解释状态码的简单说明。现将5类状态码详细列出:
① 客户方错误
100 继续
101 交换协议
② 成功
200 OK
201 已创建
202 接收
203 非认证信息
204 无内容
205 重置内容
206 部分内容
③ 重定向
300 多路选择
301 永久转移
302 暂时转移
303 参见其它
304 未修改(Not Modified)
305 使用代理
④ 客户方错误
400 错误请求(Bad Request)
401 未认证
402 需要付费
403 禁止(Forbidden) ---> 权限问题等
404 未找到(Not Found)
405 方法不允许
406 不接受
407 需要代理认证
408 请求超时
409 冲突
410 失败
411 需要长度
412 条件失败
413 请求实体太大
414 请求URI太长
415 不支持媒体类型
⑤ 服务器错误
500 服务器内部错误
501 未实现(Not Implemented)
502 网关失败
504 网关超时
505 HTTP版本不支持
网友评论