PHP 使用带有标头的 cURL 和 GET 请求

2024-04-21

过去有一些更棘手的问题,如下所示。

如何从 PHP 发送带有标头的 GET 请求? https://stackoverflow.com/questions/19259490/how-do-i-send-a-get-request-with-a-header-from-php

但我不知道为什么我的代码不起作用。 我想通过使用带有标头的 cURL 和 GET 请求来获取“状态代码 200 OK 和二进制图像数据”。

我在调试时也可能会出错。 我将不胜感激你的任何帮助。 提前致谢!

API参考:https://devdocs.line.me/en/#get-content https://devdocs.line.me/en/#get-content

$url = "https://api.line.me/v2/bot/message/". $message_id. "/content";
$curl = curl_init("$url");
error_log(var_export($curl));

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 証明書の検証を行わない
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
));

$response = curl_exec($curl);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$image_binary = substr($response, $header_size);
curl_close($curl);

error_log(print_r("xxx...",true));
error_log(var_export($response));
error_log(print_r("aaa...",true));
error_log(print_r($response,true));
error_log(print_r("bbb...",true));
error_log(print_r($header,true));
error_log(print_r("ccc...",true));
error_log(print_r($image_binary,true));

然后..我明白了...

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��

根据 PHP 文档CURLOPT_HEADER:

TRUE在输出中包含标题。

Your $response可能看起来像这样:

HTTP/1.1 200 OK
Some: headers
More: header lines

{
    "real": "json content"
}

这是因为您添加了CURLOPT_HEADER https://curl.haxx.se/libcurl/c/CURLOPT_HEADER.html option.

您无需设置任何选项即可让curl 请求发送您的标头。只要你设置了CURLOPT_HTTPHEADER https://curl.haxx.se/libcurl/c/CURLOPT_HTTPHEADER.html选项,将发送标头。

如果您确实想接收响应标头,请检查现有问题,例如“PHP cURL 可以在单个请求中检索响应标头和正文吗?” https://stackoverflow.com/a/9183272/3990767

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 使用带有标头的 cURL 和 GET 请求 的相关文章

  • Laravel 5.2 CORS,GET 不适用于预检选项

    可怕的 CORS 错误 跨源请求被阻止 同源策略不允许读取 远程资源位于http localhost mysite api test http localhost mysite api test 原因 CORS 标头 Access Cont
  • 值得学习的优秀 Zend Framework 示例应用程序 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • mysqli_query() 需要至少 2 个参数,其中 1 个参数在? [复制]

    这个问题在这里已经有答案了 每次运行这个 php ini 时 我都会遇到同样的 3 个错误 我不知道我做错了什么 有人可以帮忙吗 以下是错误 2014 年 5 月 5 日 19 20 50 美洲 芝加哥 PHP 警告 mysqli quer
  • 如何在 Imagick 中读取 SVG 字符串?

    我有一个包含 svg 元素标记的字符串
  • 是否可以仅在一张表上运行“symfonydoctrine build --all”任务?

    如果我运行以下任务 它会构建所有内容并清除数据库 php symfony doctrine build all 我希望此任务仅针对我放入 schema yml 的新表运行 是否可以 我认为你应该为此使用迁移 首先 您需要恢复初始状态 当模式
  • Laravel,2 个域中的 2 个项目同一会话

    我正在 2 个不同的域 domain1 tld 和域 2 tld 中创建 2 个项目 domain1 tld 是主要事件生成器页面 domain2 tld 是其事件之一 我想共享相同的会话 它们实际上共享相同的数据库和相同的 apache
  • 限制用户角色仅更改 Woocommerce 中的某些订单状态 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想限制按角色访问 woocommerce 下拉列表中的某些订单状态 我已经在functions php子主题中尝试过代码按角色限制
  • 使用 SimpleXML 从 XML 获取多个项目

    我正在尝试使用下面的代码循环 XML 中的多个项目 xml get data the url data simplexml load string xml foreach data gt item AS item foreach item
  • 使用 PHP 简单 DOM 解析器的递归

    由于某种原因 我在使用简单 DOM 解析器库时遇到了递归 我的 HTML 是这样的 div div class some div some text div div class field 1 misc1 a href Some text
  • Codeigniter - 错误 - 没有要更新的数据

    我本来要更新数据库 但收到错误 没有要更新的数据 这是我的脚本 我创建了一个简单的切换来更新数据库 切换使用户处于活动状态 is active 1 或非活动状态 is active 0 我遇到的问题是 虽然对象从 1 更改为 0 或 0 更
  • Unix cURL POST 使用文件中的内容到特定变量

    我已经搜索过这个答案 但没有找到任何有效或完全符合我的问题的答案 使用 Unix cURL 我需要将键 值对发布到服务器 密钥将是 MACs 换行符分隔的 MAC 地址文件的内容将是此 POST 的 VALUE 我试过了 curl d fi
  • 如何迭代嵌套的 stdClass? [复制]

    这个问题在这里已经有答案了 我有一个这样的对象 stdClass Object count gt 10 start gt 0 total gt 37 values gt Array 0 gt stdClass Object key gt 5
  • PHP:向网址添加参数?

    如果我有网址mysite com test php id 1 The id在页面加载时设置 可以是任何内容 那里还可能有其他人 例如 id 1 sort new 有没有办法只在末尾添加另一个而不先找出其他人是什么 然后构建新的网址 谢谢 作
  • 如何在 PHP 中验证小数

    如何在 PHP 中验证十进制数字 我查看了 is numeric 但这对我不起作用 bool is numeric 混合变量 查找给定变量是否为 数字 数字字符串包括 可选符号 任意数量的数字 可选的小数部分和可选的 指数部分 因此 012
  • 更改 WooCommerce 购物车和结帐页面中的“运输”文本:[重复]

    这个问题在这里已经有答案了 我正在将 WooCommerce 与 Storefront 主题一起使用 并且我正在尝试更改这个词 船运 在带有总计的购物篮页面上 我在这里找到了一些建议 https kriesi at support topi
  • 在 htaccess 中设置内存限制 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在使用 WordPress 我需要增加内存 因此我将以下行添加到我的 htaccess 文件中 BEGIN WordPress
  • 从MySQL php中的特定列获取最大ID和最小ID

    我是新来的php现在尝试从中检索数据MySQL到安卓 这是我的工作细节 table In 检索总小时数函数 我想检索最短 ID 时间 and 最大 ID 超时 from MySQL到安卓通过php最后使用下面的代码来获取总小时数 假设 ID
  • PHP 中字符串中的类常量

    我的阅读手册 http www php net manual en language types string php language types string parsing 标题 字符串访问和按字符修改 之前的部分 是 您可以在字符串
  • Facebook 爬虫严重攻击我的服务器并忽略指令。多次访问相同资源

    Facebook 爬虫每秒多次访问我的服务器 它似乎忽略了 Expires 标头和 og ttl 属性 在某些情况下 它会在 1 5 分钟内多次访问同一 og image 资源 在一个示例中 爬虫程序在 3 分钟内使用 12 个不同的 IP
  • 获取数组的第一个元素

    我有一个数组 array 4 gt apple 7 gt orange 13 gt plum 我想获取这个数组的第一个元素 预期结果 字符串apple 要求一 它不能通过引用传递来完成 so array shift这不是一个好的解决方案 我

随机推荐

  • Bower:安装 2 个版本的 jQuery

    我将如何安装 2 个版本的 jQuery使用凉亭 我想要 v2 0 以及 1 9 1 来支持浏览器回退 我遇到的问题是如果你跑bower install jquery 1 9 1 jquery 2 0 0第一个版本被第二个版本覆盖 因为它们
  • 在 UIImage imageNamed 中使用外部图像

    我正在从网上下载两张图片 Apple png 和 电子邮件受保护 cdn cgi l email protection 我想用 UIImage imageNamed Apple png 因此它可以使用内置功能来检测是否应该显示 Apple
  • 使用 oAuth 或其他方式实施访问

    我正在尝试想办法向其他第三方网站开放网站及其部分数据库 类似于 Twitter 让网络应用程序连接到其数据库以检索数据并可能存储数据的方式 我最初的研究让我想到了 oAuth 或者是 openID 我需要做的是让第三方网站登录网站上的用户帐
  • 在 MATLAB 中将数组拆分为多个部分

    我想将数组分成相等的部分 如下所示 a 1 2 3 4 5 6 7 8 9 10 n 2 b split a n b 1 2 3 4 5 6 7 8 9 10 哪个函数可以做到这一点 尝试这个 a 1 2 3 4 5 6 reshape a
  • 想要为 Android Activity 提供半透明背景?

    我希望某个活动有一个半透明的背景 以便可以在该活动下方看到之前的活动 类似于在后台播放的视频上方弹出的半透明菜单 这可能吗 你能告诉我怎么做吗 注意 我无法使用 Android 的默认半透明主题 因为我正在为我的应用程序使用我自己的自定义背
  • 指向数组元素

    我想要实现的目标是说我有一个数组 我希望能够通过指向它来修改整个代码中的特定数组元素 例如在 C 中我可以这样做 int main int arr 5 1 2 3 4 5 int c arr 3 cout lt lt arr 3 lt
  • Xcode 12 和 OSLog (os.log):包装 OSLogMessage 导致编译错误:参数必须是字符串插值

    在 Xcode 12 iOS 14 中 OSLog 获得了对字符串插值的支持 耶 但仍然无法附加挂钩以轻松登录到其他渠道 例如 Crashlytics 所以我想我只需制作一个简单的包装器并传递参数即可 然而 关于字符串插值似乎发生了一些神奇
  • “无法开始调试”-VS2010 ASP.NET MVC 2

    我只能使用 VS2010 和 ASP NET MVC2 启动一次调试会话 当我结束第一个会话并尝试启动另一个会话时 我可以看到 无法开始调试 没有其他消息 我使用 Visual Studio Development Server 而不是 I
  • 删除单链表中的节点

    如何删除只有一个指针指向要删除节点的单链表中的节点 起始和结束指针未知 可用信息是指向应删除节点的指针 您可以在不获取前一个节点的情况下删除节点 方法是让它模仿以下节点并删除该节点 void delete Node n if is sent
  • SMLoginItemSetEnabled - 从应用程序沙盒登录开始 - Xcode 6.3(插图)

    当应用程序沙箱化时 如何使应用程序具有登录时启动功能 感谢 CORY BOHON 他创建了以下教程 http martiancraft com blog 2015 01 login items http martiancraft com b
  • 在 Pandas Lambda 函数中使用带有多个 if 语句的 Apply

    我试图根据数据框中人的大小来推断分类 如下所示 Size 1 80000 2 8000000 3 8000000000 我希望它看起来像这样 Size Classification 1 80000 lt 1m 2 8000000 1 10m
  • 我们可以在 OpenAPI/Swagger 2.0 中设置全局“消费”和“生产”吗?

    在我需要设置的每个路径中consumes and produces 我可以全局设置它们吗 post summary description consumes application json application xml produces
  • 将字典存储在 pandas 数据框中

    我想将字典存储到数据框中 dictionary example 1234 choice 0 choice set 0 A 100 B 200 C 300 1 A 200 B 300 C 300 2 A 500 B 300 C 300 234
  • 请求单个位置更新,AVD 崩溃

    我尝试使用新的 LocationManager requestSingleUpdate 方法请求单个位置更新 但是一旦设备从 GPS 获取更新 操作系统就会崩溃 并且似乎会尝试重新启动 至少我看到了通常的 Android 启动屏幕 但它永远
  • Python读取文件内容[重复]

    这个问题在这里已经有答案了 在Python中 如何像Java中的InputStream一样只读取文件内容 不包括属性和文件名 我需要一种适用于各种文件格式的方法 我试过这个 with open filePath rb as imageFil
  • 如何在 Ubuntu 上安装 Impala? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我要安装Impala https impala apache org 在 Ubuntu 实例上 到目前为止 以下方法都不起作用 如何在 U
  • 在 4 个 CPU 上执行 CPU 密集型任务时,20 个进程中的 400 个线程优于 4 个进程中的 400 个线程

    这个问题非常类似于在执行 I O 密集型任务时 20 个进程中的 400 个线程优于 4 个进程中的 400 个线程 https stackoverflow com q 56272639 303363 唯一的区别是链接的问题是关于 I O
  • Laravel 5.3 对数据库进行查询并将其传递给所有视图

    我有一些动态数据 我想从数据库中获取并将其传递给所有视图 我尝试从互联网上举一些例子 但它们似乎不适用于我的情况 例如 public function boot 我无法使数据库查询仅传递硬编码值 我尝试过的另一种方法是基本控制器 但访问变量
  • 为什么不同的长值会转换为相同的日期/时间?

    public static void getTime SimpleDateFormat sdf new SimpleDateFormat yyyy MM dd HH mm ss Time t1 new Time Long parseLong
  • PHP 使用带有标头的 cURL 和 GET 请求

    过去有一些更棘手的问题 如下所示 如何从 PHP 发送带有标头的 GET 请求 https stackoverflow com questions 19259490 how do i send a get request with a he