php curl如何设置自定义请求头和打印请求头信息

$header = [
    ‘client:h5‘,
    ‘token:test‘,
];

curlRequest($url, $params, true, 10, $header);
PHP 5.1.3版以上支持用curl_getinfo函数来获取请求头具体需要先设置 curl_setopt($ch, CURLINFO_HEADER_OUT, true);然后在请求发生后用 curl_getinfo($ch, CURLINFO_HEADER_OUT);
    function curlRequest($url, $params = array(), $is_post = false, $time_out = 10, $header=array())
    {
        $str_cookie = isset($ext_params[‘str_cookie‘]) ? $ext_params[‘str_cookie‘] : ‘‘;$ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0);//设置是否返回response header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上

        //当需要通过curl_getinfo来获取发出请求的header信息时,该选项需要设置为true
        curl_setopt($ch, CURLINFO_HEADER_OUT, true);

        curl_setopt($ch, CURLOPT_TIMEOUT, $time_out);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $time_out);
        curl_setopt($ch, CURLOPT_POST, $is_post);

        if ($is_post) {
            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
        }

        if ($str_cookie) {
            curl_setopt($ch, CURLOPT_COOKIE, $str_cookie);
        }

        if ($header) {
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        }

        $response = curl_exec($ch);
     //打印请求的header信息
        $request_header = curl_getinfo( $ch, CURLINFO_HEADER_OUT);
        print_r($request_header);

        curl_close($ch);

        return $response;
    }
时间: 2024-10-14 20:42:01

php curl如何设置自定义请求头和打印请求头信息的相关文章

接口测试——HttpClient工具的https请求、代理设置、请求头设置、获取状态码和响应头

转自:https://www.cnblogs.com/hong-fithing/p/7617855.html https请求 https协议(Secure Hypertext Transfer Protocol) : 安全超文本传输协议, HTTPS以保密为目标研发, 简单讲HTTPS协议是由SSL+HTTP协议构建的可进行加密传输. 身份认证的网络协议, 其安全基础是SSL协议, 因此加密的详细内容请看SSL. 全称Hypertext Transfer Protocol overSecure

header头设置解决 “已拦截跨源请求:同源策略禁止读取位于 http://47.104.128.87/back/test/test 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。”

跨域请求错误提示如下图: 解决方法在请求的php页面添加header头: 代码如下: public function test() { //支持全域名访问,不安全,部署后需要固定限制为客户端网址 header('Access-Control-Allow-Origin:*'); //支持的http 动作 header('Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE'); //响应头 请按照自己需求添加. header('Access-Co

HTTP头中增加自定义的属性然后post请求第三方的页面

场景是这样的,第三方页面访问需要鉴权,所以需要在HTTP头中增加鉴权的属性和内容发送给第三方网页. 我试过用response.addHeader("Authorization","xxxxxxxxx")方法,但发送的请求还是不带Authorization属性,还请大牛们不吝指教. 你这个问题实际上是服务器访问第三方鉴权系统,这个访问过程和客户端没关系的 和response,request都没关系 是要在服务器端模拟http请求,在这个请求里面增加自定义header用

安卓中自定义并使用Volley框架请求网络

大家好,今天我们讲一下如何使用Volley框架请求网络,为何要使用Volley框架,这就要先说一下使用Volley框架请求网络的优点了,volley是易于定制的,即你可以根据需求来设定volley框架,还有volley框架支持请求的优先级设定,即你可以自主设定网络请求的优先级,还有就是volley框架请求支持取消单个或多个请求,这个一会设置请求的时候会特别说明,还有它可以自动调度网络请求,至于其他的如代码的健壮性.支持多并发等等就不一一列举了,说了那么多下面就介绍如何自定义并使用Volley框架

cURL常见设置项的简单介绍

cURL设置项 cURL的设置项通过curl_setopt函数设置,原型如下:       boolcurl_setopt(resource $ch,int $option,mixed $value); 常用的设置项介绍如下: 1. CURLOPT_REFERER:       当根据Location:重定向时,自动设置header中的Referer信息 2. CURLOPT_COOKIESESSION: 启用时会仅仅传递一个session cookie,忽略其他cookie,默认情况下cURL

Springboot如何优雅的解决ajax+自定义headers的跨域请求[转]

1.什么是跨域 由于浏览器同源策略(同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.),凡是发送请求url的协议.域名.端口三者之间任意一与当前页面地址不同即为跨域. 具体可以查看下表: 2.springboot如何解决跨域问题 1.普通跨域请求解决方案: ①请求接口添加注解@CrossOrigin(origins = "http://127.0.0.1:8020", maxAge

apache设置自定义header

1. 在设置自定义header前,需要先检测一下你的httpd是否加载了mod_headers /usr/local/apache2/bin/apachectl  -l 如果,显示有mode_headers.c  则是加载了这个模块,否则就需要重新编译一下了.另外,如果你使用的是rpm安装的话,那肯定是已经加载了mod_headers这个模块的. 2.  在httpd.conf 中加入 Header add MyHeader "Hello" 保存后,重启apache就可以了双引号中的内

php curl host 设置访问指定主机

为了安全,我们的web服务主机往往不能上网.维护的时候,也是通过跳板机,ssh登录后去操作. 有时候我们的程序需要访问外网.比如需要调用外网其他程序的某个接口.这下该怎么办呢? 我们可以通过PHP的CURL函数的CURLOPT_HTTPHEADER来配置设置host访问. 在开发中,我遇到这样一个例子. 有一个活动程序,需要调用qzone那边的一个接口. 如下代码示例: $host = array("Host: act.qzone.qq.com"); $data = 'user=xxx

PHP发送请求头和接收打印请求头

一.发送请求头 //发送地址 $url = 'http://127.0.0.1/2.php'; //请求头内容 $headers = array( 'Authorization: '.$basic, 'suibianzhi: '.$basic, ); //使用curl发送 $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, f