php curl curlopt_customrequest,php – 如何重置CURLOPT_CUSTOMREQUEST
我正在使用REST API,除其他外,它使用DELETE方法,如下所示:
DELETE /resources/whatever/items/123
要使用PHP访问它,我使用这样的cURL:
self::$curl = curl_init();
curl_setopt_array(self::$curl, array(
CURLOPT_AUTOREFERER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true,
));
如您所见,我的cURL实例是静态的,将在后续调用中重用.在“内置”请求方法之间切换时,这可以正常工作.例如,在我的get()方法中,我执行以下操作:
curl_setopt_array(self::$curl, array(
CURLOPT_HTTPGET => true,
CURLOPT_URL => self::BASE . 'whatever',
));
然后运行curl_exec().通过CURLOPT_HTTPGET显式设置请求方法,将清除可能的先前CURLOPT_POST.
但是,设置CURLOPT_CUSTOMREQUEST(例如,设置为DELETE)将覆盖任何其他内置请求方法.只要我想删除东西,这很好,但是调用例如curl_setopt(self :: $curl,CURLOPT_HTTPGET,true)将不会重置自定义方法;仍将使用DELETE.
我已经尝试将CURLOPT_CUSTOMREQUEST设置为null,false或空字符串,但这只会导致HTTP请求
/resources/whatever/items/123
即使用空字符串作为方法,后跟空格,然后是路径.
我知道我可以将CURLOPT_CUSTOMREQUEST设置为GET而不做任何问题的GET请求,但我想知道是否有可能重置CURLOPT_CUSTOMREQUEST.
解决方法:
这实际上是PHP中的a bug,因为原始的documentation声明如下:
Restore to the internal default by setting this to NULL.
不幸的是,正如您在the source code中所看到的,选项值在传递给底层库之前会被转换为字符串.
解
我编写了一个解决该问题的pull request,并允许为CURLOPT_CUSTOMREQUEST选项值传递NULL.
上面的补丁需要一些时间才能合并到项目中,因此在您开始使用此选项之前,您必须自己显式设置该方法.
更新
该修复程序已应用于5.5.11和5.6.0(beta1).
标签:php,rest,curl
来源: https://codeday.me/bug/20191007/1868894.html
php curl curlopt_customrequest,php – 如何重置CURLOPT_CUSTOMREQUEST相关推荐
- curl第六课 Http Digest Auth认证应用
项目 在安迅士摄像机网页上,配置系统选项,HTTP/RTSP Password Settings 中, 选择Encrypted only.获取设备的云台状态信息,使用的是摘要认证 例 ...
- 在Ubuntu 14.04 64bit上使用pycURL模块示例
PycURL 传说是实现Python下多线程网页抓取的效率最高的解决方案,本质是对libcurl C语言库的封装. 在Linux上有个常用的命令 curl(非常好用),支持curl的就是大名鼎鼎的li ...
- 抓取epsg.io的内容
简述 epsg.io是一个查询EPSG坐标系相关信息的好网站,内容很全.有各种格式的定义可以直接下载,也有坐标系的范围名称等相关信息,所以想抓取这些信息下来,方便对接各个系统. epsg.io本身是开 ...
- 海康摄像头http抓图
老版本的摄像头使用海康的协议http://user:password@192.168.1.64/ISAPI/Streaming/channels/33/picture 就可以取得图片. 然后新型号的摄 ...
- ocr文字识别 php源码,OCR文字识别
OCR文字识别 简介 HI,您好,欢迎使用学而思网校AI开放平台OCR文字识别接口服务. 本文档主要针对需要集成HTTP API的技术研发工程师,详细描述OCR文字识别能力相关的技术内容.您可以通过 ...
- libcurl第五课 Digest Authentication摘要验证使用
场景 在安迅士摄像机网页上,配置系统选项,HTTP/RTSP Password Settings 中, 选择Encrypted only.获取设备的云台状态信息,使用的是摘要认证 例 ...
- php curl rst,CURL错误:Recv失败:通过对等方重置连接 - PHP Curl
我有这个奇怪的错误, CURL ERROR: Recv failure: Connection reset by peer 这就是它发生的方式,如果我没有连接到服务器并突然试图通过PHP中的CURL连 ...
- PHP CURL 中文说明
1.CURL是利用URL语法在命令行方式下工作的开源文件传输工具. 2.它被广泛应用在Unix.多种Linux发行版中.而且有DOS和Win32.Win64下的移植版本号. 3.它支持非常多协议:FT ...
- PHP 利用 curl 发送 post get del put patch 请求
PHP 利用 curl 发送 post get del put patch 请求 参考地址 PHP cURL 函数 概述 PHP支持的由Daniel Stenberg创 ...
最新文章
- Redis 笔记(14)— 持久化及数据恢复(数据持久方式 RDB 和 AOF、数据恢复、混合持久化)
- vector容器总结.xml
- 大话中文文本分类之TextRCNN
- php error 2,一起搞懂PHP的错误和异常(二)
- Android 硬件 OpenGL ES 模拟设计概述
- directly test Gateway frontend service in AG3 SICF
- Exynos4412 文件系统制作(二)—— 文件系统简介
- Day04-循环和列表
- 【Python】Numpy包的安装使用
- 无法执行该VI,必须使用LabVIEW完整版开发系统才可以解决该错误
- idea 快捷删除移动_21个极大提高开发效率的VS Code快捷键
- 公众号文章折叠点击后展开案例_(案例)蜂窝纸板在包装中的应用重型箱
- JavaScript学习(八十一)—将多维数组转化为一维数组
- ESP32开发 CMakeLists包含同级目录.h文件,error: gpioX.h: No such file or directory
- java多线程上传文件_Java大文件分片上传/多线程上传
- 一封程序员的苦逼辞职信
- python 直方图每个bin中的值_python – 如何获取直方图bin中的数据
- 根据单词列表通过网络下载单词发音
- 免费下载百度文库等文档
- 服务器搬迁方案_服务器搬迁方案
热门文章
- 记一次Emotet木马下载器的分析
- java文件删除选择框,从列表框中删除文件
- 搜索优化—如何在Google搜索引擎上排名靠前Google左侧排名
- 【CF #777 div2】A-C
- RK3588平台开发系列讲解(AUDIO篇)Linux音频调试--alsa-utils 工具
- Django项目实践3 - Django模型(字段、数据库操作及模型继承)
- Spark 调优技巧总结
- 【kimol君的无聊小发明】—用python写图片格式批量处理工具
- mysql不识别生僻字_MySQL生僻字(不常用字)的完整解决方案
- 发布“智能化、平台化、全程电子化”的新OA系统——e-cology9.0