php网络请求

作者: 放飞吧自我 | 来源:发表于2017-11-18 10:51 被阅读1374次

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版本不支持

相关文章

  • php网络请求

    php网络请求 (1) get网络请求 得到结果是百度的页面,因为response被解析成一个HTML文件显示出来...

  • PHP 发送网络请求

    PHP发送网络请求的方式很多种,这里主要记录 curl 的方式 主要是分4步走: 第一步、初始化curl_init...

  • 小程序post请求

    小程序的网络请求默认请求头是'content-type': 'application/json',如果用php做为...

  • 2018-04-04-PHP cURL 访问微信 https 接

    作为 PHP 开发者,需要发起网络请求,都是使用 cURL 扩展库。 PHP cURL 扩展,使用 curl_in...

  • PHP网络爬虫之CURL

    CURL简介 php的curl可以实现模拟http的各种请求,这也是php做网络爬虫的基础,也多用于接口api的调...

  • 配置及调优

    Zend OPcache: Nginx 把HTTP请求转发给PHP-FPM, PHP-FPM再把请求交给某个PHP...

  • xhprof 主要功能(图)

    其中调用链功能本人在规划中,在php底层 发送网络请求的时候自动增加traceid,不用修改现有代码,一次请求的i...

  • 记一次使用Zookeeper C API导致的内存泄漏

    现象 线上 nginx + php-fpm来实时处理请求, php处理请求时需加载我们写的扩展; 发现每次请求处理...

  • php开发中nginx 与 apache的选择

    简单说明php由于没有自己的网络处理库,所以无法处理网络请求,需要结合web服务器进行处理。那问题就来了,主流使用...

  • 解决ajax请求服务器(PHP端)响应时间过长问题

    title: 解决ajax请求服务器(PHP端)响应时间过长问题tags: [ajax,PHP,TTFB,请求时长...

网友评论

    本文标题:php网络请求

    本文链接:https://www.haomeiwen.com/subject/qklevxtx.html